web-dev-qa-db-ja.com

正しいドライブをgrub構成ポイントにするためにDebianでpreseedファイルを構成する方法

2台のドライブを搭載したコンピューターがいくつかあります(1台はssd、もう1台はhddです)。自動展開用のpreseedファイルを作成しました。これは、パーティショニングのある部分を除いて正常に機能します。今のところ手動で実行されますが、この場合でも、次回の起動時にgrubは機能しません。

重要なのは、USBフラッシュドライブから起動すると、インストールプロセス中にフラッシュドライブ自体がsdaデバイスになるため、SDBのMBR(SSDドライブ)にgrubを配置します。しかし、インストールが完了してUSBスティックが取り外されると、SSDディスクがsdaになり、grub構成が機能しないため、sdaから起動できるようにgrub構成を手動で編集してから、システムを起動し、永続的なgrub構成ファイルを変更する必要があります。次回マシンを起動できるように、grubを更新します。この種の問題に対処する方法は何ですか?

プレシードの作り方:

  1. すべてをSSD(メインドライブ)に配置し、スワップボリュームを作成せずに自動パーティション化し、grubを配置します。
  2. HDDをntfsとしてフォーマットし、マウントします。
  3. 再起動後、grub構成を手動で調整しなくても、すべてが機能するはずです。
1

解決策は、実際には最後のupdate-grubを使用しないことです。これは、インストール中に現在使用されている構成に構成を復元するためです。

だから私のpreseedステップは:

d-i preseed/late_command string \
in-target sed -i 's#^\(GRUB_CMDLINE_LINUX_DEFAULT="quiet\)"$#\1 root=/dev/sda1"#' /etc/default/grub \
in-target grub-mkconfig -o /boot/grub/grub.cfg ; \
in-target sed -i 's/root\=\/dev\/sdb1/root\=\/dev\/sda1/g' /boot/grub/grub.cfg ;
0