私はDebianブートローダーを/boot
ハードドライブからUSBスティックに移動することにしました。 LUKSを使用してハードドライブを暗号化/復号化していますが、ブートローダが暗号化されていない唯一のパーティションです。
どうすれば簡単にできますか?ハードドライブから削除し、削除後に空き容量を確保するためにパーティション(/
、、、/var
)のサイズを変更し、新しいブートローダをUSBスティックに挿入したいと思います。使用されるブートローダはGRUBです。/tmp
/boot
/dev/sda1
答え1
締めますgrub
。これは、解決するのが難しい問題であると信じるようにするいくつかの複雑さをもたらします。お使いのコンピュータが5年未満の場合は、おそらくUEFIファームウェアで起動しています。この場合、DebianベースのLinuxカーネルが必要です。すでにブートローダです。
ディスクを分割します。
printf %c\\n o y n 1 '' '' ef00 w y | gdisk /dev/usb-stick/or-whatever-path
これは、プログラムに対話的に提供するオプションのスクリプトショートカットです。 GUIDパーティションテーブルとタイプのテーブルを作成します。EFIシステムディスク全体にまたがっています。
しかし、この
gdisk
プログラムは使いやすいので、インタラクティブに使用する方が良いです。実行中はターゲットディスクをマウントしないでください。w
変更を書き込むにはroot権限が必要な場合があります。一般に、このプログラムでは必要なほとんどすべての操作を実行できますが、w
作成するまでは何も起こりません。
スティックをfat32でフォーマットします。
mkfs.vfat -nLABEL /dev/usb-stick/or-whatever-path
- 商標あなたが望むものは何でもあります。あなたはする必要があります商標 みんな私の考えではディスクです。
必要に応じてブートメニューマネージャをインストールします。いいねマイクロプレートリーダー:
dpkg -i refind_0.8.7-1_amd64.deb
USBに自動的にインストールされない可能性があるため、後でインストールすることをお勧めします。
/path/to/refinds/install/dir/install.sh --usedefault /dev/usbstick
rEFIndを使用している場合は、後で次のことを行う必要があります。
mount /dev/usbstick /mnt mkdir -p /mnt/EFI/debian /esp cp -ar /boot/* /mnt/EFI/debian cat <<\TWONEWLINES >>/etc/fstab LABEL=LABEL /esp vfat defaults 0 2 /esp/EFI/debian /boot none bind,defaults 0 0 TWONEWLINES cat <<\ONESIMPLECONFIG >/mnt/EFI/debian/refind_linux.conf "Debian Menu Entry" root=LABEL=rootlabel other_kernel_params ONESIMPLECONFIG
ただし、rEFIndをスキップしてファームウェアの起動メニューを使用できます。
efibootmgr -c -d /dev/rootdevice \ -p 1 -L "Debian" \ -l '\EFI\debian\kernelfile' \ -u root=/dev/sda3 kparams \ initrd=EFI/debian/initramfs_image_file
ほぼその程度です。ほとんど永遠に - もはや大騒ぎはありません。ファームウェアは、USBスティックでフォーマットされたEFIシステムパーティションからカーネルをロードします。カーネルは初期ルートをinitramfsファイルにロードします。 LUKSを正常に起動したら、何らかの方法でそのキーにアクセスする準備をする必要があります。キーはすでにinitramfsイメージにあります。そうでない場合は、USBまたはUSBに挿入する必要があります。
ブートパーティションは山UEFIシステムでは、ブートローダとMBRの組み込みに関連するすべての古い汚れが完全に不要です。ファームウェアのインストールから起動し、カーネル実行可能ファイルをロードして続行します。
USBスティックにディレクトリをインストールするfstab
だけで、すべてのカーネルアップデートが通常どおり実行されます。それでも気に入ったら、完全に削除できます。邪悪なチェーンから別のスクリプトを読み込んだり生成したりする一連のスクリプトなどの不思議な更新プロセスは、少し面白くて簡単に避けられる悪夢です。--bind
/boot
grub
しかし、私のアドバイスを受け入れると、rEFIndを使用します。美しいメニューがあるので心配する必要はありません。install.sh
上記のスクリプトの効果を簡単に再現できます。(ほとんどの上にあります)1つのcp
コマンドしか必要ありません。/EFI/BOOT
ファームウェアにカーネルが見つかる場所を示す小さなEFI実行可能ファイルを含むEFIシステムパーティションから呼び出される静的ディレクトリです。これコア実際のブートローダーです。そうする必要があります。
上記の設定を使用すると、任意の数のEFI実行可能ファイルを起動できます。/boot
(またはブートパーティションは何でも)USBスティックのどこかにコンテンツがある/EFI
場合、rEFIndはそのコンテンツを自動的に見つけ、Microsoftシステムを含むファームウェアメニューのオプションとして提供できます。永遠に。
答え2
まず、次のことができます。
- USBドライブの分割、フォーマット、マウント
- 古いファイルのすべてのファイルを
/boot
USBスティックにコピーする /etc/fstab
USBスティックファイルシステムを新しいシステムに変更します。/boot
umount /boot
、mount /boot
定式化する- スティックにブートローダ(
grub-install /dev/sdx
またはその他)をインストールします。 - 再起動して動作することを確認してください。
/boot
古いスペースをすでに暗号化されたシステムに回収する場合。以前のブートパーティションのサイズによっては、他のすべてのデータ(または追加のLUKSコンテナと複数のコンテナの使用に伴うすべての複雑さ)を移動する必要があるため、これは価値がない可能性があります。まだこれらのいずれかがない場合は、暗号化されたスワップパーティションとして使用できます。