GNU/Linux >> Linux の 問題 >  >> Debian

Debian / grub2:ルートパーティションを新しいドライブに移動しますか?

ルートパーティションを新しいドライブに移動し、そのドライブで起動するようにgrub2を設定する方法について誰かが提案していますか? grub-mkconfigに何をしたいのかを指示するのはうまくいかないようです(たとえば、新しいルートへのchroot’intは、すべてのスクリプトを混乱させるだけです)。

背景 ヘッドレス低電力NASでDebianSqueezeを実行しています。私の現在の設定は/です 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 。しかし、sdfから起動しようとすると、grubレスキュープロンプトが表示されました。 。

私のバックアップ計画は再インストールするだけなので、ボーナスの質問(これにはチェックマークはありません):lvm2とmdadmの構成を取得するにはどうすればよいですか?それはすべてファイルシステムに保存されていますか(そして自動的に検出されますか)、それとも自分で取得する必要がありますか?

解決策 (Maciej Piechotkaに感謝します):Maciejが指摘しているように、すべてのgrubツールが機能するには、適切なchrootを実行する必要があります。参考までに、これが私がやった方法です:

[email protected]:/mnt/newroot$ sudo cp -ax / /mnt/newroot
[email protected]:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot

これですべてのファイルがコピーされます(コピー戦略の説明については、ここを参照してください)。新しいetc/fstabを修正します 新しいルートを指すには:

[email protected]:/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へ:

[email protected]:/mnt/newroot$ sudo mount -o bind /dev /mnt/newroot/dev
[email protected]:/mnt/newroot$ sudo mount -t proc none  /mnt/newroot/proc
[email protected]:/mnt/newroot$ sudo mount -t sysfs none /mnt/newroot/sys
[email protected]:/mnt/newroot$ sudo parted /dev/sdb set 5 boot on 
[email protected]:/mnt/newroot$ sudo chroot .

これで、見た目どおりに将来のルートにchrootされます。 Maciejによると、grub-installを呼び出すだけで問題ないはずです。 、しかし私はupdate-grubを実行しました 最初に、生成された/boot/grub/grub.cfgを確認します。 ブートローダーをインストールする前に。自動的に更新されるかわかりませんか?

[email protected]:/# update-grub
[email protected]:/# grub-install /dev/sdb

承認された回答:

基本的なファイルシステムをマウントし、次のようにchrootしながらファイルをコピー/変更します。

  • / dev(mount -o bind /dev/ /path/to/chroot/dev
  • / proc(mount -t proc none /path/to/chroot/proc
  • / sys(mount -t sysfs none /path/to/chroot/sys

Grub 2をarchにインストールし、Gentooに何度もインストールしているときに機能したIIRC。次に、chrootの後に/path/to/chrootに移動します コマンドは単純でした:

grub-install /dev/<boot_disk>

lvm2の時点で(そして私はmadmを信じていますが、使用していません)、構成はディスクに保存されています。デバイスを検出するために読み取る必要のある構成があります。デバイスが標準の場所(/dev/sd*)にあると仮定します または/dev/hd* )問題はないはずです。

関連:別のユーザーおよびグループとしてファイルを作成しますか?

PS。ライブシステムの単純なcpは、うまくいかない可能性のある場所がいくつかあるため、信頼できません。

  • /etc/fstabを変更するのを忘れた およびその他の有用なファイル
  • アクセス中に変更されたファイル
  • ゴミの処理(/tmp など)

Debian
  1. Debian 10(Buster)がリリースされました–新機能

  2. Debian 10 /Debian11で忘れたrootパスワードをリセットする

  3. 新しいドライブに GRUB をインストールするには?

  1. Debian 8 Jessieがリリースされました–新機能

  2. Debian9にTYPO3をインストールする方法

  3. Debian – / var、/ homeを別のパーティションに移動しますか?

  1. Debian10にMariaDBをインストールする方法

  2. Debian10でChrootを使用してSFTPサーバーを構成する方法

  3. Debian 10(Buster)にKVMをインストールして設定する方法