Kann ich Dateien mit grub2-Scripting kopieren?

1662
motech man

Ich versuche, ein paar Details für einen öffentlichen Gebrauch mit zwei Booten (dh den öffentlichen Bibliothekskontext) zu erarbeiten, der Windows 7 und Linux ausführt.

Ich verwende Windows 7 und Linux Mint. Windows 7 läuft auf einer VHD-Datei (Image des Dateisystems wie squashfs in Linux). Ich brauche Grub, um verschiedene BCD- und VHD-Dateien vor dem Start von Windows in Position zu kopieren.

Die Strategie besteht darin, eine andere BCD-Datei in Position zu kopieren, um den Standardstart von WinPE (zum Starten von Windows in einem Wartungsmodus) zu ändern, um die VHD-Datei zu starten, die einen Snapshot (dh eine Basiskonfiguration von Windows) bootet, und ob ich dies tun könnte das innerhalb des grub2-Bootloaders wäre ideal.

Ich benutze den kostenlosen "Steadier State" ( http://www.steadierstate.com/ ) als Basis für das Booten von VHD. Es sind zwei Bootzyklen erforderlich, um sicherzustellen, dass bei jedem Neustart des Systems eine konsistente Basislinie gestartet wird.

SS bietet zwar nicht für jeden Neustart die Möglichkeit, ein Baseline-System zu starten, aber ich habe ein Skript zum Herunterfahren des Systems hinzugefügt, das mit bcdedit das Standard-Betriebssystem zum Booten umschaltet. Es wechselt vom Booten der VHD-Datei zum Booten von WinPE, wodurch die Bedingungen ausgewertet werden. Wenn sie richtig entfernt werden, erstellt sie das untergeordnete "snapshot.vhd" neu, ändert dann den Standardstart zurück in snapshot.vhd und beendet das Windows-Baseline-Fenster Betriebssystem, das gestartet werden soll.

Wenn grub2 Dateien kopieren konnte, könnte ich die Notwendigkeit des Bootens von WinPE beseitigen, um die Datei snapshot.vhd neu zu erstellen und das Standardbetriebssystem auf Boot umzustellen.

Übrigens lädt grub2 immer bootmgr, wenn "Windows 7" ausgewählt ist. Die Datei / boot / BCD teilt bootmgr mit, was zu booten ist. Es gibt nur 2 Boot-Einträge in dieser BCD, einen für "Windows 7" (dh es wird snapshot.vhd gestartet) oder "Nur Admins!" das bootet WinPE. Das Timeout in der BCD ist immer auf Null gesetzt, sodass Sie das Bootmgr-Menü nie sehen.

Die Art und Weise der Wartung erfolgt durch Einstecken eines USB-Sticks, der (wenn erkannt) den Bootmgr zum Booten von WinPE ändert, sodass Aktualisierungen der Baseline eingebunden werden können.

3
Es gelang mir, Informationen zum Erstellen von Grub2 mit dem Lua-Modul (Suche nach Grub-Extras) zu finden, und ich habe erfolgreich Lua-Code unter Grub2 ausgeführt. Ich habe jedoch immer noch keine Möglichkeit gefunden, Dateien mit Lua unter grub2 zu kopieren. Lua wird häufig verwendet, um Anwendungen Skripts bereitzustellen. Der von der Anwendung bereitgestellte Lua-Kontext kann stark eingeschränkt oder sehr uneingeschränkt sein, je nachdem, welche Anwendung dies erfordert. Lua erledigt einige Dinge über "os.execute", aber bei grub2, einem OS-Bootloader, ist kein solcher Aufruf verfügbar. Sie müssen Dokumente finden. motech man vor 7 Jahren 0
Ich bin mir nicht sicher, ob das Kopieren von Dateien mit oder ohne Lua-Unterstützung mit grub2 möglich ist. http://moi.vonos.net/linux/Booting_Linux_on_x86_with_Grub2/#initialization sagt, dass grub2 keine Funktionalität zum Schreiben von Dateien implementiert. Die Lua von "Grub-Extras" stellt kein "os" - oder "io" -Objekt bereit. Die meisten Funktionen von grub2 lua werden von grub.run bereitgestellt (). Wenn also grub2 keine Dateischreibfunktion bietet, vermute ich sehr, dass die Lua-Programme von grub2 auch unter dieser Einschränkung leiden werden. motech man vor 7 Jahren 0

0 Antworten auf die Frage