/dev/sda
空き容量が多い空のドライブがあるとしましょう。また、以前のLinuxバックアップのパーティションもあります/dev/sdb1
。一般的に使用されるLinuxファイルシステムなどが含まれています/home
。/usr
注目すべき点は、EFIブートパーティションがないことです。
この設定では、どうすればいいですか?
- パーティションをにコピーし、ブートパーティション用の
/dev/sda
スペースを残します。 - このファイルシステムで起動するブートパーティションを作成します。
- 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/sda1
sda1がパーティション名であると仮定)、取得したUUIDを書き留めますsudo lsblk -o UUID /dev/sda1
(UUIDと呼びますuuid_efi
)。
/boot
にエントリがある場合、/src/etc/fstab
そのエントリにも4 GBのパーティションを作成します(ext4、特別なものはありません)。また、対応するUUIDを記録してください(と呼びますuuid_boot
)。
sdaに適切なサイズのパーティションを追加して内容をアーカイブして/dev/sdb1
フォーマットします(ヒント:元のファイルシステムタイプと同じファイルシステムタイプを使用すると、システムのデフォルト設定でそれを引き続き使用できます)と/dst
Superiorにマウントします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 を再生成します。