お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2011-09-12 21:03:01

kbkbkbkb1
新しいメンバ
登録日: 2011-09-12

同じハードディスクの,別のパーティションから起動する

以前は Windows7 と Ubuntu のデュアルブートにしており,ハードディスクの先頭の方に Windows7 のパーティション,
後ろの方に Ubuntu のパーティションとなっていました.現在は Windows7 の領域を削除し,
1つのハードディスク(/dev/sda)で Ubuntu を利用しています.

そのようなこともあり,現在は /dev/sda は先頭の方は空き領域で,/dev/sda6 が / にマウントされた
状態で Ubuntu をつかっています.これはなんとなく座りが悪いので,ハードディスクの先頭の方に
/dev/sda6 を移動したくなりました.なので,/dev/sda1 を /dev/sda6 と同じサイズのパーティションに切り,

$ sudo dd if=/dev/sda6 of=/dev/sda1 bs=512

としました.今の /dev/sda の状態がこのようになっています.

$ sudo fdisk -l /dev/sda

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x98000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       28446   228492463+  83  Linux
/dev/sda4           30888       60802   240283649    f  W95 Ext'd (LBA)
/dev/sda5           60540       60802     2098176    7  HPFS/NTFS
/dev/sda6           30888       59333   228490240   83  Linux
/dev/sda7           59334       60539     9686016   82  Linux swap / Solaris

Partition table entries are not in disk order


この状態で,grub から /dev/sda1 を / にマウントして起動できることも確認しました.
あとは,デフォルトで /dev/sda1 が立ち上がるように設定したいと考えました.
いろいろ調べて,/etc/fstab の UUID を変更すればいいのだろうと思い,
パーティションの UUID を調べました.

$ sudo blkid
/dev/sda1: UUID="3bd697ab-7235-4e61-9030-a93a0f75aa65" TYPE="ext4"
/dev/sda5: LABEL="READER" UUID="B2CC5247CC52064F" TYPE="ntfs"
/dev/sda6: UUID="3bd697ab-7235-4e61-9030-a93a0f75aa65" TYPE="ext4"
/dev/sda7: UUID="4c7ba894-196a-439b-aaef-d29d8ee10f82" TYPE="swap"


すると /dev/sda1 と /dev/sda6 の UUID が同じになってしまっていて,どのように
変更すれば /dev/sda1 が立ち上がってくれるのかわからなくなってしまいました.

どのようにしたら,/dev/sda1 から起動することができるようになりますか?

OS: Ubuntu 11.04
kernel: 2.6.38-11-generic-pae

オフライン

 

#2 2011-09-12 23:33:47

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 同じハードディスクの,別のパーティションから起動する

試したことは無いのですが、UUIDが重複していても、正常にシステム起動できるんですね。。
ちょっとびっくりしました。
しかし、UUIDが重複するのはやはり異常な状態なので、
uuidgen
tune2fs
あたりを使って、UUIDを変更していただいた方がよいかと思います。
参考URL

オフライン

 

#3 2011-09-13 00:09:00

hir0
メンバ
登録日: 2008-09-28

Re: 同じハードディスクの,別のパーティションから起動する

違っていたらごめんなさい。
「/dev/sda6 を移動しようと」言うことはコピー元の/dev/sda6は削除しても構わないのでしょうか。
その場合はUUIDの重複は心配ありません。

この状態で,grub から /dev/sda1 を / にマウントして起動できることも確認しました.
あとは,デフォルトで /dev/sda1 が立ち上がるように設定したいと考えました.

GRUBが/dev/sda6 を最初に参照して各パーティションのOSを起動させているのを、最初に/dev/sda1を参照させるようにということでしょうか?

/dev/sda1 を起動した状態で
$ sudo grub-install /dev/sda
$ sudo update-grub

を実行すればOKです。

オフライン

 

#4 2011-09-16 00:03:00

kbkbkbkb1
新しいメンバ
登録日: 2011-09-12

Re: 同じハードディスクの,別のパーティションから起動する

> しかし、UUIDが重複するのはやはり異常な状態なので、
> uuidgen
> tune2fs
> あたりを使って、UUIDを変更していただいた方がよいかと思います。

なるほど,UUID を変更できるコマンドがあったのですね.UUID を変更して,それに合わせて /etc/fstab を
編集するということで大丈夫でしょうか?試してみます.

> 「/dev/sda6 を移動しようと」言うことはコピー元の/dev/sda6は削除しても構わないのでしょうか。

コピーしてるので最終的には /dev/sda6 は消しますが,もし消してから /dev/sda1 で立ち上がらないと冷や汗モノなので
共存してる状態で /dev/sda1 が立ち上がるようになってから,/dev/sda6 を消したいところです.

オフライン

 

#5 2011-09-16 03:59:29

hir0
メンバ
登録日: 2008-09-28

Re: 同じハードディスクの,別のパーティションから起動する

コピーしてるので最終的には /dev/sda6 は消しますが,もし消してから /dev/sda1 で立ち上がらないと冷や汗モノなので
共存してる状態で /dev/sda1 が立ち上がるようになってから,/dev/sda6 を消したいところです.

/dev/sda6 から実行する場合と/dev/sda1 から実行する場合と、コマンドのオプションとかは変わりますが同じ内容が実行されます。

いづれにせよ/dev/sda1 と /dev/sdaのMBRを関連付けないことには/dev/sda6 のサイズ変更や削除で起動できなくなってしまいます。

心配されている部分はコマンドの失敗やハードのトラブル、コピーの部分的な失敗(この場合、起動できているので/boot配下に不具合がある)等の特殊な状況です。

これを回避するにはUSBメモリ等を利用して(インストール時のカーネルのバージョンが存在するならライブCD/USBでも可)起動ディスクを事前に確保しておくしかないでしょう。


USBメモリは /dev/sdb  と仮定して書きます。
/dev/sdb1をext2/ext3/ext4 のいづれかでフォーマットしてください。
サイズは100MBもいらないと思うけど、、、


$ sudo umount /dev/sdb1      *←念のためにアンマウント。
$ sudo mount /dev/sdb1 /mnt
$ sudo mkdir -p /mnt/boot/grub
$ sudo cp /usr/lib/grub/i386-pc/* /mnt/boot/grub
$ sudo grub-install --root-directory=/mnt /dev/sdb
$ sudo grub-mkconfig -o /mnt/boot/grub/grub.cfg

これで/dev/sda1 と /dev/sda6 の起動設定を含む起動USBメモリが出来ます。
石橋を叩いて渡るならオリジナルの/dev/sda6 から実行されたほうが、現在起動できている健康なファイルを利用できます。
更にsuper grub2 と言うレスキュウ用?のISOファイルもネット上にありますので好みで起動ディスクを作成しておくのも良いと思いますよ。

オフライン

 

Board footer

Powered by FluxBB