Wie konfiguriere ich die Preeseed-Datei in Debian, um den GRUB-Konfigurationspunkt für das korrekte Laufwerk festzulegen?

548
Artur Korobeynyk

Ich habe mehrere Computer mit 2 Laufwerken (einer ist ssd, der andere ist hdd). Ich habe eine Vorabdatei für die automatisierte Bereitstellung erstellt, die bis auf den Teil mit Partitionierung gut funktioniert. Fürs Erste wird es manuell gemacht, aber selbst in diesem Fall funktioniert grub beim nächsten Booten nicht.

Der Punkt ist, wenn ich von einem USB-Flashlaufwerk boote, das Flashlaufwerk selbst wird während des Installationsvorgangs zum SDA-Gerät. Daher stelle ich grub in den MBR von SDB (SSD-Laufwerk). Aber nachdem die Installation abgeschlossen ist und der USB-Stick entfernt wurde, wird die SSD-Festplatte zur sda und die grub-Konfiguration funktioniert nicht. Daher muss ich die grub-Konfiguration manuell bearbeiten, um von der sda booten zu können. Anschließend wird in das System gebootet und die permanente grub-Konfigurationsdatei geändert. Aktualisieren Sie Grub, um die Maschine beim nächsten Mal bootfähig zu machen. Wie gehen Sie mit dieser Art von Problem um?

Wie man Preseed macht:

  1. Legen Sie alles auf die SSD (es ist das Hauptlaufwerk), partitionieren Sie es automatisch, ohne ein Swap-Volume zu erstellen, und legen Sie Grub hinein.
  2. Formatieren Sie die Festplatte als NTFS und mounten Sie sie.
  3. Nach dem Neustart sollte alles funktionieren, ohne die grub config manuell zu verändern.
1
Ich versuche im Moment, das Zeug mit dem `preseed / late_command string \ in-target sed -i s / root \ = \ / dev \ / sdb1 / root \ = \ / dev \ / sda1 / g zu machen. /boot/grub/grub.cfg; \ in-target update-grub; `Dieser Befehl schlägt jedoch während der Installation fehl Artur Korobeynyk vor 6 Jahren 0
Ich habe auch versucht: `di preseed / late_command string sed -i s / root \ = \ / dev \ / sdb1 / root \ = \ / dev \ / sda1 / g /target/boot/grub/grub.cfg ; in-target bash -c 'update-grub'; `Funktioniert auch nicht Artur Korobeynyk vor 6 Jahren 0
Mounten von / dev / sda1 in initramfs und Überprüfen der Dateien zeigt, dass alle diese Dateien nicht aktualisiert wurden. Ich habe auch versucht, / etc / default / grub mit `in-target sed -i 's # ^ \ zu editieren (GRUB_CMDLINE_LINUX_DEFAULT =" quiet \) "$ # \ 1 root = / dev / sda1" # "/ etc / default / grub ` Artur Korobeynyk vor 6 Jahren 0

1 Antwort auf die Frage

0
Artur Korobeynyk

Die Lösung besteht eigentlich darin, den letzten Update-Grub nicht zu verwenden, da die Konfiguration auf die Konfiguration zurückgesetzt wird, die derzeit während der Installation verwendet wird.

Also ist mein vorgefertigter Schritt:

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 ;