ルートパーティションを新しいドライブに移動し、そのドライブで起動するようにgrub2をセットアップする方法についての提案はありますか?私はgrub-mkconfigにそれが何をしたいのかを指示する運がないようです(例えば、新しいルートにchroot'intするだけですべてのスクリプトが混乱します)。
背景私は、ヘッドレスの低電力NASでDebian Squeezeを実行しています。現在の設定は/
オンsda0
と/boot
オンsde0
(CFカード)です。遅延スピンアップを実行する必要がある/boot
ため、別の設定がsd[a-d]
必要です。今、私はとして使用するために、古い2.5" IDEディスクを見つけた/
など、/boot
私はすべての大きなディスクをスピンダウンできるようにします。
基本的に私が試したこと
mount -o rw /dev/sdf5 /mnt/newroot
cp -ax / /mnt/newroot
cp -ax /boot /mnt/newroot/boot
それから私は試した
chroot /mnt/newroot
update-grub
しかし、ルートがマウントされているかどうかを尋ねるgrubで失敗しました。次に/mnt/newroot/grub/grub.cfg
、でカーネルイメージを見つけるためのセットアップを中途半端に試みましsdf5
たgrub-install --root-directory=/mnt/newroot /dev/sdf
。しかし、これは、から起動しようとしたときにgrubレスキュープロンプトを表示しましたsdf
。
私のバックアップ計画は、再インストールするだけなので、ボーナスの質問(この質問にはチェックマークはありません):lvm2とmdadmの設定を取得するにはどうすればよいですか?すべてファイルシステムに保存されていますか(そして自動的に検出されますか)、それとも自分で取得する必要がありますか?
解決策(Maciej Piechotkaに感謝):Maciejが指摘しているように、すべてのgrubツールが機能するには適切なchrootが必要です。参考までに、これは私がやった方法です:
janus@nasguld:/mnt/newroot$ sudo cp -ax / /mnt/newroot
janus@nasguld:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot
これで、すべてのファイルがコピーされました(コピー戦略の説明については、こちらをご覧ください)。etc/fstab
新しいルートを指すように新しいを修正します。
janus@nasguld:/mnt/newroot$ diff -u etc/fstab.old etc/fstab
-UUID=399b6a6d-c067-4caf-bb3e-85317d66cf46 / ext3 errors=remount-ro 0 1
-UUID=b394b614-a977-4860-bbd5-7862d2b7e02a /boot ext3 defaults 0 2
+UUID=b9d62595-e95c-45b1-8a46-2c0b37fcf153 / ext3 noatime,errors=remount-ro 0 1
最後に、マウントdev
、sys
およびproc
新しいルートとchroot環境へ:
janus@nasguld:/mnt/newroot$ sudo mount -o bind /dev /mnt/newroot/dev
janus@nasguld:/mnt/newroot$ sudo mount -t proc none /mnt/newroot/proc
janus@nasguld:/mnt/newroot$ sudo mount -t sysfs none /mnt/newroot/sys
janus@nasguld:/mnt/newroot$ sudo parted /dev/sdb set 5 boot on
janus@nasguld:/mnt/newroot$ sudo chroot .
これで、見た目通りに将来のルートにchrootされました。Maciejによると、単にを呼び出すだけで構いませんが、ブートローダーをインストールする前に、生成されgrub-install
たものをupdate-grub
最初に確認しました/boot/grub/grub.cfg
。自動的に更新されるかわかりませんか?
root@nasguld:/# update-grub
root@nasguld:/# grub-install /dev/sdb
/etc/fstab
していないということかもしれませんchroot
(これはupdate-grub
、「\がマウントされていません」という苦情と一致します)。もう一度これを実行する場合は、特別なファイルシステムをchrootにマウントすることなく、最初に試してみます。
/etc/default/grub
からの正確なトランスクリプトを投稿しupdate-grub
ます。