Kann ich von einem Symlink aus booten?

396
Konner Rasmussen

Ich habe die Erfahrung gemacht, dass ich einen Symlink des Installationsverzeichnisses eines Programms erstellen kann, wodurch ich eine virtuelle Kopie erhalten kann, die geändert werden kann, ohne das Original zu ändern.

Kann ich das mit einer bootfähigen Partition machen?

Meine Absicht ist es, ein Betriebssystem auf einer Partition zu installieren, schreibgeschützt zu machen und das Betriebssystem von einer zweiten Partition aus auszuführen, die lediglich ein Symlink zur schreibgeschützten Installation ist.

Würde das funktionieren?

Bearbeiten:

Das Wiki, das die Anweisungen zur Verfügung gestellt hat, wurde geschlossen. Aber hier spricht ein anderer Ort über die Verwendung von "Junctions" in Windows mit dem Spielclient.

https://oldforums.eveonline.com/?a=topic&threadID=1093545

1
"Würde das funktionieren?" - Nein Ramhound vor 6 Jahren 0

1 Antwort auf die Frage

6
grawity

Es gibt ein wichtiges Missverständnis darüber, was Symlinks tun. Insbesondere tun Symlinks dies nicht :

Das würde mir eine virtuelle Kopie erlauben, die geändert werden könnte, ohne das Original zu ändern.

[...]

Meine Absicht ist es, ein Betriebssystem auf einer Partition zu installieren, schreibgeschützt zu machen und das Betriebssystem von einer zweiten Partition aus auszuführen, die lediglich ein Symlink zur schreibgeschützten Installation ist.

Auch wenn Sie könnten booten über einen Symlink, es würde nicht bieten diese „Copy on Write“ -Funktion.

Symlinks sind nichts anderes als Aliase, die verwendet werden müssen, wenn Sie einem Pfad folgen. Sie könnten zB einen Symlink setzen, in C:\foodem das Betriebssystem D:\barstattdessen " Anschauen" anzeigt . Das ist es. Sobald der Symlink verfolgt wird, wirken sich alle Vorgänge - ob Lesen oder Schreiben oder Löschen - auf die ursprüngliche Datei in gleicher Weise aus.

(Hardlinks tun noch weniger. Ein "Hardlink" ist buchstäblich nur eine Datei mit zwei Namen (oder mehr), aus diesem Grund können Hardlinks nicht einmal eine Platte durchqueren. Auch die Verwendung eines beliebigen Namens ändert die Originaldatei immer noch, ohne es zu machen eine spezielle Kopie. Nur bestimmte Linux-Dateisysteme unterstützen "Rückkopplungen" für das Kopieren beim Schreiben.)


Um eine schreibgeschützte Basis zu haben, können Sie stattdessen eine der folgenden Optionen verwenden:

  • Volume-Schattenkopien sind Copy-On-Write-Momentaufnahmen. Die Funktion "Systemwiederherstellung" in Windows ermöglicht das Wiederherstellen des Betriebssystems auf einen alten Snapshot. (Leider gibt es keinen Befehl, um eine vollständige Momentaufnahme wiederherzustellen.)

  • Es gibt Programme von Drittanbietern, um das Betriebssystem "einzufrieren", normalerweise unter Verwendung eines speziellen Treibers. Sie sind in Schulen und Bibliotheken beliebt. Sie leiten alle Schreibvorgänge an anderer Stelle um, so dass Sie nach jedem Neustart ein neues Betriebssystem erhalten.

  • Sie können das Betriebssystem in einer virtuellen Maschine installieren. Viele VM-Software unterstützen entweder einfache Snapshots oder "Differentialdatenträger", sodass Sie das Betriebssystem auf einen früheren Zustand zurücksetzen können.

  • Wenn Sie zwei Festplatten haben, klonen Sie einfach das Ganze - es dauert nicht lange, um ~ 20 GB einer Windows-Installation zu kopieren.

Vielen Dank für eine so hervorragende Antwort. Wenn ich das richtig verstehe, ist ein Symlink also ein Zeiger in C ++? Ich verstehe nicht Meine Erfahrung mit Symlinks ist das Spiel Eve. Um zwei Konten gleichzeitig auf verschiedenen Bildschirmen und auf einer einzelnen Maschine auszuführen, müssen zwei Installationen vorhanden sein. Eine Einstellung ist standardmäßig auf 1 und die andere auf Display 2 eingestellt. Die Entwickler weisen an, einen Symlink des Spielverzeichnisses zu erstellen und die Konfiguration über die Spielmenüs vorzunehmen. Dies widerspricht dem, was Sie mir gesagt haben, als es schien, dass die Dateien, die geändert wurden, den Großteil der Ordnerdatengröße ausmachten Konner Rasmussen vor 6 Jahren 0
Ja, es ist genau wie ein Zeiger. (Mit Ausnahme der Dereferenzierung eines baumelnden Symlinks führt nichts zum Absturz.) Was das Spiel angeht: a) Wenn die Konfiguration _inside_ ihres Spieleverzeichnisses speichert, ist ein Symlink dieses Verzeichnisses unbrauchbar. Sie können zwar jedes einzelne Element symbolisch verknüpfen (Konfigurationsdateien überspringen) und nicht das gesamte Verzeichnis auf einmal. b) Es ist möglich, dass das Spiel seine config _elsewhere_ speichert, aber der config-Pfad ist auf dem Spielpfad _ basiert. Dann würde ein Symlink funktionieren. Aber es hört sich etwas unwahrscheinlich an. grawity vor 6 Jahren 0
Ich habe die Forenbeiträge durchgesehen und EVE tut tatsächlich das, was ich in "b)" beschrieben habe - es behält den Daten- / Cache-Speicher _elsewhere_, aber der Standort hängt davon ab, wo EVE selbst installiert wurde. Die Methode mit Junctions oder Symlinks funktioniert also, aber nur, weil EVE speziell dafür geschrieben wurde. grawity vor 6 Jahren 0
Interessant. Ich bin neugierig. Kennen Sie eine Möglichkeit, den beschriebenen Effekt zu erreichen, wenn Sie die Festplatten selbst herstellen? Konner Rasmussen vor 6 Jahren 0
Für ein gesamtes Betriebssystem? Siehe die zweite Hälfte meines Beitrags ... grawity vor 6 Jahren 0