Antworten:
Angenommen, es gibt einen 512-Byte-DOS-ähnlichen MBR, und Sie haben die ersten 446 Bytes durch einen Mist ( Nullen oder nur /dev/urandom
Ausgabe) ersetzt oder den Bootcode auf andere Weise beschädigt. In diesem Fall befindet sich die MBR-Partitionstabelle an ihrem Platz, aber das System kann nicht von diesem Gerät booten.
Die Idee ist, den Loader eines anderen BSD-ähnlichen Systems zu verwenden, um mit Ihrem Gerät und Ihrem Kernel zu booten.
unload
disk0s1a
durch Eingabe das Gerät heraus, von dem Sie Ihre FreeBSD starten möchten (normalerweise so etwas wie )lsdev
set currdev="disk0s1a"
loder.conf
von Ihrem Gerät (um sicherzustellen, dass alle Ihre Kernel-Einstellungen und -Hacks zutreffen), indem Sie Folgendes eingebenread-conf boot/loader.conf
boot-conf
Wenn Ihr Betriebssystem startet, können Sie den Bootcode reparieren. Ich benutze sysinstall
es (Custom -> Partition, W, <Yes>
, BootMgr
( "Installieren Sie den FreeBSD - Boot - Manager"), <OK>
, Q, <Exit>
, <Exit Install>
), aber es ist veraltet seit 9.0-RELEASE und entfernt von der Basis seit 10,0-RELEASE. Eine andere Möglichkeit besteht darin, das darin gespeicherte Backup zu verwenden /boot
, um den Bootcode daraus zu extrahieren:
# gpart bootcode -b /boot/mbr /dev/yourbootdevice