バックアップLinuxパーティションの復元

バックアップLinuxパーティションの復元

/dev/sda空き容量が多い空のドライブがあるとしましょう。また、以前のLinuxバックアップのパーティションもあります/dev/sdb1。一般的に使用されるLinuxファイルシステムなどが含まれています/home/usr注目すべき点は、EFIブートパーティションがないことです。

この設定では、どうすればいいですか?

  1. パーティションをにコピーし、ブートパーティション用の/dev/sdaスペースを残します。
  2. このファイルシステムで起動するブートパーティションを作成します。
  3. BIOSからここから起動するには、grubをインストールしてください。

答え1

まずインストール/dev/sdb1してください/src。画像に/boot/efiがないことはわかっていますが、/bootが別個かどうかはわかりません。/bootの項目があることを確認してください/src/etc/fstab。もしあれば、私たちもそれを作り直す必要があります。

パーティションを/ dev / sdaにコピーして、ブートパーティション用のスペースを解放します。

代わりに、EFIブートパーティションを最初に作成します(GPTテーブル、最初のパーティションを4 GBのFAT32パーティションにし、識別のために「EFIboot」とマークします)。

パーティションがフォーマットされていることを確認し(sudo mkfs.vfat /dev/sda1sda1がパーティション名であると仮定)、取得したUUIDを書き留めますsudo lsblk -o UUID /dev/sda1(UUIDと呼びますuuid_efi)。

/bootにエントリがある場合、/src/etc/fstabそのエントリにも4 GBのパーティションを作成します(ext4、特別なものはありません)。また、対応するUUIDを記録してください(と呼びますuuid_boot)。

sdaに適切なサイズのパーティションを追加して内容をアーカイブして/dev/sdb1フォーマットします(ヒント:元のファイルシステムタイプと同じファイルシステムタイプを使用すると、システムのデフォルト設定でそれを引き続き使用できます)と/dstSuperiorにマウントしますcp --archive /src/* /dst/。少し時間がかかるかもしれません!

/dst/etc/fstabで調整する/boot/efi金額ですUUID=${uuid_efi}。項目自体がある場合は、上記のように両方/bootに調整します。UUID=${uuid_boot}

バインド/proc/sysおよび/devターゲット:/run/dst

for mnt in {proc,sys,run}; do
  sudo mount -o bind "/${mnt}" "/dst/${mnt}"
done

最後に、シェルを開き、/dstディレクトリを次のように確認します/

sudo chroot /dst /bin/bash

ある場合は、そのシェル内にインストールしてください/boot/boot/efi

mount /boot
mount /boot/efi

チャジャン。これで、実行中のターゲットシステムで実行されているかのようにすべてを見ることができるシェルができました。

これには、ブートローダを再インストールする一般的なディストリビューション方法が適用されます。 Debianノイドの場合この方法、redhatoidsの場合はおそらくyum reinstall grub2-efi。他のディストリビューションの場合は、直接調査する必要があります(検索エンジンはそのdistroname reinstall grubタスクを実行する必要があります)。次に、配布固有の手段を使用して最新のカーネルパッケージを再インストールし、/boot/ を正しく入力し、initrds を再生成します。

関連情報