Add support for using a livefs from a USB disk.
Submitted by: randi Approved by: re (kensmith)
This commit is contained in:
parent
e24256e54e
commit
71b38b3c12
@ -86,6 +86,7 @@ static struct _word {
|
||||
{ "installFixupBase", installFixupBase },
|
||||
{ "installFixitHoloShell", installFixitHoloShell },
|
||||
{ "installFixitCDROM", installFixitCDROM },
|
||||
{ "installFixitUSB", installFixitUSB },
|
||||
{ "installFixitFloppy", installFixitFloppy },
|
||||
{ "installFilesystems", installFilesystems },
|
||||
{ "installVarDefaults", installVarDefaults },
|
||||
|
@ -327,6 +327,33 @@ installFixitHoloShell(dialogMenuItem *self)
|
||||
return DITEM_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
* Load the live filesystem from USB media.
|
||||
*/
|
||||
int
|
||||
installFixitUSB(dialogMenuItem *self)
|
||||
{
|
||||
if (!RunningAsInit)
|
||||
return (DITEM_SUCCESS);
|
||||
|
||||
variable_set2(SYSTEM_STATE, "fixit", 0);
|
||||
|
||||
if (DITEM_STATUS(mediaSetUSB(NULL)) != DITEM_SUCCESS ||
|
||||
!DEVICE_INIT(mediaDevice)) {
|
||||
msgConfirm("No USB devices found!");
|
||||
return (DITEM_FAILURE);
|
||||
} else if (!file_readable("/dist/rescue/ldconfig")) {
|
||||
msgConfirm("Unable to find a FreeBSD live filesystem.");
|
||||
return (DITEM_FAILURE);
|
||||
}
|
||||
|
||||
if (DITEM_STATUS(fixit_livefs_common(self)) == DITEM_FAILURE)
|
||||
return (DITEM_FAILURE);
|
||||
|
||||
mediaClose();
|
||||
return (DITEM_SUCCESS);
|
||||
}
|
||||
|
||||
int
|
||||
installFixitCDROM(dialogMenuItem *self)
|
||||
{
|
||||
|
@ -2173,8 +2173,9 @@ DMenu MenuFixit = {
|
||||
"Press F1 for more detailed repair instructions",
|
||||
"fixit",
|
||||
{ { "X Exit", "Exit this menu (returning to previous)", NULL, dmenuExit },
|
||||
{ "2 CDROM/DVD", "Use the \"live\" filesystem CDROM/DVD", NULL, installFixitCDROM },
|
||||
{ "3 Floppy", "Use a floppy generated from the fixit image", NULL, installFixitFloppy },
|
||||
{ "4 Shell", "Start an Emergency Holographic Shell", NULL, installFixitHoloShell },
|
||||
{ "2 CDROM/DVD", "Use the live filesystem CDROM/DVD", NULL, installFixitCDROM },
|
||||
{ "3 USB", "Use the live filesystem from a USB drive", NULL, installFixitUSB },
|
||||
{ "4 Floppy", "Use a floppy generated from the fixit image", NULL, installFixitFloppy },
|
||||
{ "5 Shell", "Start an Emergency Holographic Shell", NULL, installFixitHoloShell },
|
||||
{ NULL } },
|
||||
};
|
||||
|
@ -680,6 +680,7 @@ extern int installExpress(dialogMenuItem *self);
|
||||
extern int installStandard(dialogMenuItem *self);
|
||||
extern int installFixitHoloShell(dialogMenuItem *self);
|
||||
extern int installFixitCDROM(dialogMenuItem *self);
|
||||
extern int installFixitUSB(dialogMenuItem *self);
|
||||
extern int installFixitFloppy(dialogMenuItem *self);
|
||||
extern int installFixupBase(dialogMenuItem *self);
|
||||
extern int installFixupKernel(dialogMenuItem *self, int dists);
|
||||
|
Loading…
x
Reference in New Issue
Block a user