
Ubuntu日本語フォーラム

ログインしていません。
以前は 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
オフライン
違っていたらごめんなさい。
「/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です。
オフライン
> しかし、UUIDが重複するのはやはり異常な状態なので、
> uuidgen
> tune2fs
> あたりを使って、UUIDを変更していただいた方がよいかと思います。
なるほど,UUID を変更できるコマンドがあったのですね.UUID を変更して,それに合わせて /etc/fstab を
編集するということで大丈夫でしょうか?試してみます.
> 「/dev/sda6 を移動しようと」言うことはコピー元の/dev/sda6は削除しても構わないのでしょうか。
コピーしてるので最終的には /dev/sda6 は消しますが,もし消してから /dev/sda1 で立ち上がらないと冷や汗モノなので
共存してる状態で /dev/sda1 が立ち上がるようになってから,/dev/sda6 を消したいところです.
オフライン
コピーしてるので最終的には /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ファイルもネット上にありますので好みで起動ディスクを作成しておくのも良いと思いますよ。
オフライン