だから私がしたいことは次のとおりです。
ラップトップのネイティブSSDに空き容量が残っているので、暗号化されたLVMに2番目のディストリビューションをインストールし、/bootパーティションをUSBスティックに入れてシステムを起動するためにスティックが必要になるようにしたいと思います。それ以外の場合は、デフォルトのディストリビューションで起動します。お使いのコンピュータに他のオペレーティングシステムがあることを示していないSSDのDebianシステム...
私はDebianベースのParrot OSを使用しているので、非常に似たインストーラがあります。 /用に暗号化されたLVMとSSDの空き領域にスワップ論理ボリュームを使用して新しいパーティションを作成し、USBスティックの/boot用の1GBパーティションを作成し、それに応じてパーティショナーのロードポイントにマウントを設定しました。 /bootに起動可能フラグを設定しました。インストール中に、最初のディスクのMBRにGRUBをインストールするかどうかを尋ねるメッセージが表示されます。 「いいえ」を選択し、手動で配置を選択できるデバイスのリストを取得します。 /bootでUSBドライブを選択してください...
システムをインストールして起動しようとしたら、ファームウェアで起動メニューを開き、USBドライブを選択しました。明らかに、ここから起動可能なデバイスが見つからないので、メインのDebianシステムを起動します。
以前はこのようにシステムを設定したという記事を読んで、それほど問題がないと思いましたが、何かが機能せず、コンピュータが新しいOSを起動しませんでした。何か抜けましたか?それとも、このように構成されたシステムを起動することは不可能ですか?
よろしくお願いします。
ベストアンサー1
まず、MBR(レガシー)は今や普遍化されており、徐々にEFIに置き換えられています。あなたの質問では、EFIではなく従来の起動を使用していることがはっきりわからないため、実際に使用している起動を確認することをお勧めします。これを行うには、タスク(デフォルト)Debianシステムを起動し、次を見つけます。
ls /sys/firmware/efi/efivars/
存在する場合はEFIを介して起動します。また、/boot/efi/
EFIパーティションがマウントされたディレクトリがあることに注意してください。
回復環境を設定します。
作業環境があるため、問題を解決するには、その作業環境を使用して「壊れた」環境に起動する必要があります。
暗号化されたLVMを使用していると述べました。これにより、状況がさらに複雑になりました。最初にすべきことは、暗号化回復パスワードを使用して暗号化されたドライブのロックを解除することです。
# Assuming your LVM is /dev/vg/encrypted
# This will create a decrypted block device /dev/mapper/decrypted
cryptsetup open /dev/vg/encrypted decrypted
次に、「壊れた」システムをマウントし、ルートを変更します/mnt
(USBブートパーティションがあると仮定/dev/sdb1
)。
mount /dev/mapper/decrypted /mnt
mount /dev/sdb1 /mnt/boot
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount --bind /run /mnt/run
# chroot into the recovery environment
chroot /mnt
これにより、「壊れた」システム内にコマンドラインが残ります。
以前のブートを使用している場合
上記のように、リカバリシステム内のパーティションではなくUSBドライブのMBRにブートローダをインストールする必要があります/boot/
。/boot
USBドライブにいる場合は、代わりに/dev/sdb1
MBRを取り付ける必要があります。/dev/sdb
/dev/sdb1
grub-install /dev/sdb
良い測定のために、grub configとinitramfsも実行して更新する必要があります。
update-grub
update-initramfs -uk all
ここにエラーがある場合は参考にしてください。
EFIを使用する場合
一部のBIOSファームウェアはどちらか一方を使用するため、EFIからメインシステムを起動する場合は、USBもこの方法で起動する必要があります。回復環境内(上記のように)...
まず、USBドライブにEFIパーティションがあることを確認してください。そうでない場合、最も簡単な方法は/boot
安全な場所にコピーしてUSBドライブを再フォーマットすることです。 USB から最初から対話形式で起動するには、以下を使用します/dev/sdb
。
cp -r /boot ~/old_boot
umount /boot
cfdisk -z /dev/sdb
cfdisk を使用して新しい GPT パーティションテーブルを作成し、「EFI」と「Linux」という 2 つのパーティションを作成します。
次にフォーマットします。
mkfs.fat -F 32 -n EFI /dev/sdb1
mkfs.ext4 -L BOOT /dev/sdb2
マウントと復元/boot
mount /dev/sdb2 /boot
cp -r ~/old_boot/* /boot
/etc/fstab
たとえば、cat /etc/fstab
UUIDが一致することを確認し、必要に応じて/boot/
エントリを追加すると、次の方法で新しいUUIDを見つけることができます。/boot/efi
blkid /dev/sdb1 /dev/sdb2
次に、最後にEFIを設定します。
mount /dev/sdb1 /boot/efi
# If you've not already done so install grub efi:
apt-get install grub-efi-amd64-bin
grub-install /dev/sdb
update-grub
update-initramfs -uk all