5/1 当初の手順だと不足がありました。
grub.cfgのsearchの行とlinuxの行でUUIDの齟齬が生じて
結局 linux行が優先され、/dev/sda8をルートとして起動してしまいます。
修正した手順の確認がとれたので修正済みのものを掲載しました。
修正した点は、実行していたにもかかわらず記載していなかった7.update-grubの実行と
本質的に欠けていた6.のところのgrub.cfgの編集です。
Ubuntu 10.04 Lucid Lynxが正式リリースされました。
本格的に弄るのは日本語Rimixが出てからのつもりですが、一応インストールしました。
インストールすれば弄りたくなるのが人情です。
弄っておかしくなった場合や、バグ報告のを考慮すると、あまり弄っていない状態をすぐに作れるようにしておくと便利です。
パーティション丸ごとのバックアップといえばddやpartimageがメジャーですが、ddは敷居が高く、partimageはext4に対応していません。
そこでfsarchiverを使用してバックアップを作成し、これを別パーティションに復元して弄ることにしました。
fsarchiverはLucidからuniverseのリポジトリに入りました。バージョンはまだ0.6.8ですが...
幸いパーティションはMaxの16まで切ってあるので、空きはいっぱいあります。
とりあえず、/dev/sda8にdesktop-i386をインストール。
その後、sda9,sda10,sda11にコピーをしました。
(バックアップからのリストアは1つあたり3分くらいだったので調子に乗って3つもコピーしてしまいました。)
手順の概略
1.とりあえず10.04を/dev/sda8へインストール
2./dev/sda1にインストールしてあったKarmicを起動
3.fsarchiverで/dev/sda8を丸ごとバックアップ
4.fsarchiverで別のパーティション(/dev/sda9)へリストア
5.tune2fsでリストアしたパーティション(/dev/sda9)のUUIDを変更
6.リストアしたパーティション(/dev/sda9)に入っている設定ファイルを修正
7.リストアしたパーティションを起動時に選択可能にするためupdate-grubを実行
8.リブートして/dev/sda9から起動、dpkg-reconfigureでgrub-pcのインストール先を修正
(私の環境では"/home"や"/var"を分けずに"/"の1パーティションだけで運用しています。 "/home"は個別のパーティションにする理由は設定ファイルをシステムごとに別にするためです。 データ用のパーティションは別に用意して$HOMEのしたからシンボリックリンクを張っています。)
以下で3以降の手順を細かく説明します。
3.fsarchiverで/dev/sda8を丸ごとバックアップ
bzip2 -2と同一の圧縮レベルで、圧縮用のスレッドを2つ使用してバックアップ
$ sudo fsarchiver -z5 -j2 savefs sda8.fsa /dev/sda8
4.fsarchiverで別のパーティション(/dev/sda9)へリストア
$ sudo fsarchiver restfs sda8.fsa id=0,dest=/dev/sda9
5.tune2fsでリストアしたパーティション(/dev/sda9)のUUIDを変更
リストアしたパーティションのUUIDはバックアップしたパーティションと同じになっているので変更します。 tune2fsのmanページで見ると-Uのあとにrandomやtimeをしてできそうなのですが、なぜかうまくいきません。 普通にuuidgenの出力を使うことにしました。
$ sudo tune2fs -U $(uuidgen) /dev/sda9 # fstabを書き換えるためにUUIDを確認 $ sudo blkid /dev/sda9 /dev/sda9: UUID="2bd68985-c6cf-4eb5-9c55-aaee3b173656" TYPE="ext4"
6.リストアしたパーティション(/dev/sda9)に入っている設定ファイルを修正
fstabとgrub.cfgを修正します。
grub.cfgの修正が必要な理由は、update-grubの実行時に走る/etc/grub.d/30_os-proberの中で
/usr/lib/linux-boot-probes/40grub2 が実行されるのですが、これがリストアしたパーティションにある
grug.cfgを参照してるからです。
$ sudo mkdir /mnt/sda9 # fstabのUUIDを書き換える。ついでにduring installationのコメントも/dev/sda9に変更 $ sudo vi /mnt/sda9/etc/fstab $ sudo vi /mnt/sda9/boot/grub.cfgfstabの修正内容
@@ -7,4 +7,4 @@ #grub.cfgの修正内容(書込みは:w!で強制書込みをします)proc /proc proc nodev,noexec,nosuid 0 0 # / was on /dev/sda10 during installation -UUID=32c50640-99e1-49c1-837f-05701e9e7def / ext4 errors=remount-ro 0 1 +UUID=2bd68985-c6cf-4eb5-9c55-aaee3b173656 / ext4 errors=remount-ro 0 1
UUIDの書き換えが必要な箇所は"### BEGIN /etc/grub.d/10_linux ###"から"### END /etc/grub.d/10_linux ###"の間にある
"linux"始まる行です。(ほかの部分は8.のdpkg-reconfigureの時に直ります。)
--- sda10_grub.cfg.org 2010-05-02 20:28:18.581936565 +0900 +++ sda10_grub.cfg.new 2010-05-02 20:31:53.980286836 +0900 @@ -63,22 +63,22 @@ ### BEGIN /etc/grub.d/10_linux ### menuentry 'Ubuntu, with Linux 2.6.32-21-generic' --class ubuntu --class gnu-linux --class gnu --class os { recordfail insmod ext2 set root='(hd0,8)' search --no-floppy --fs-uuid --set 32c50640-99e1-49c1-837f-05701e9e7def - linux /boot/vmlinuz-2.6.32-21-generic root=UUID=32c50640-99e1-49c1-837f-05701e9e7def ro quiet splash + linux /boot/vmlinuz-2.6.32-21-generic root=UUID=2bd68985-c6cf-4eb5-9c55-aaee3b173656 ro quiet splash initrd /boot/initrd.img-2.6.32-21-generic } menuentry 'Ubuntu, with Linux 2.6.32-21-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os { recordfail insmod ext2 set root='(hd0,8)' search --no-floppy --fs-uuid --set 32c50640-99e1-49c1-837f-05701e9e7def echo 'Loading Linux 2.6.32-21-generic ...' - linux /boot/vmlinuz-2.6.32-21-generic root=UUID=32c50640-99e1-49c1-837f-05701e9e7def ro single + linux /boot/vmlinuz-2.6.32-21-generic root=UUID=2bd68985-c6cf-4eb5-9c55-aaee3b173656 ro single echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.32-21-generic } ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/20_memtest86+ ###
7.リストアしたパーティションを起動時に選択可能にするためupdate-grubを実行
$ sudo update-grub
0 件のコメント:
コメントを投稿