Do a better job of CDROM detection.
Use consistent spelling throughout. Remove unmount in fixit_common() since that's bogus in the CDROM case and properly "shut down" the media device instead.
This commit is contained in:
parent
16a960917f
commit
29d851f6c2
@ -4,7 +4,7 @@
|
|||||||
* This is probably the last attempt in the `sysinstall' line, the next
|
* This is probably the last attempt in the `sysinstall' line, the next
|
||||||
* generation being slated to essentially a complete rewrite.
|
* generation being slated to essentially a complete rewrite.
|
||||||
*
|
*
|
||||||
* $Id: cdrom.c,v 1.30 1996/12/12 16:55:37 jkh Exp $
|
* $Id: cdrom.c,v 1.31 1997/01/01 12:36:05 jkh Exp $
|
||||||
*
|
*
|
||||||
* Copyright (c) 1995
|
* Copyright (c) 1995
|
||||||
* Jordan Hubbard. All rights reserved.
|
* Jordan Hubbard. All rights reserved.
|
||||||
@ -65,7 +65,7 @@ mediaInitCDROM(Device *dev)
|
|||||||
struct iso_args args;
|
struct iso_args args;
|
||||||
Attribs *cd_attr;
|
Attribs *cd_attr;
|
||||||
char *cp;
|
char *cp;
|
||||||
Boolean dontRead;
|
Boolean readInfo = TRUE;
|
||||||
|
|
||||||
if (cdromMounted != CD_UNMOUNTED)
|
if (cdromMounted != CD_UNMOUNTED)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -76,7 +76,6 @@ mediaInitCDROM(Device *dev)
|
|||||||
|
|
||||||
cd_attr = alloca(sizeof(Attribs) * MAX_ATTRIBS);
|
cd_attr = alloca(sizeof(Attribs) * MAX_ATTRIBS);
|
||||||
cp = NULL;
|
cp = NULL;
|
||||||
dontRead = FALSE;
|
|
||||||
/* If this cdrom's not already mounted or can't be mounted, yell */
|
/* If this cdrom's not already mounted or can't be mounted, yell */
|
||||||
if (!file_readable("/cdrom/cdrom.inf")) {
|
if (!file_readable("/cdrom/cdrom.inf")) {
|
||||||
Mkdir("/cdrom");
|
Mkdir("/cdrom");
|
||||||
@ -97,15 +96,17 @@ mediaInitCDROM(Device *dev)
|
|||||||
"CD or it is an older (pre 2.1.5) FreeBSD CD which does not\n"
|
"CD or it is an older (pre 2.1.5) FreeBSD CD which does not\n"
|
||||||
"have a version number on it. Do you wish to use this CD anyway?") != 0) {
|
"have a version number on it. Do you wish to use this CD anyway?") != 0) {
|
||||||
unmount("/cdrom", MNT_FORCE);
|
unmount("/cdrom", MNT_FORCE);
|
||||||
|
cdromMounted = CD_UNMOUNTED;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
dontRead = TRUE;
|
else
|
||||||
|
readInfo = FALSE;
|
||||||
}
|
}
|
||||||
cdromMounted = CD_WE_MOUNTED_IT;
|
cdromMounted = CD_WE_MOUNTED_IT;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
cdromMounted = CD_ALREADY_MOUNTED;
|
cdromMounted = CD_ALREADY_MOUNTED;
|
||||||
if (!dontRead && (DITEM_STATUS(attr_parse_file(cd_attr, "/cdrom/cdrom.inf")) == DITEM_FAILURE ||
|
if (readInfo && (DITEM_STATUS(attr_parse_file(cd_attr, "/cdrom/cdrom.inf")) == DITEM_FAILURE ||
|
||||||
!(cp = attr_match(cd_attr, "CD_VERSION")) || strcmp(cp, variable_get(VAR_RELNAME)))) {
|
!(cp = attr_match(cd_attr, "CD_VERSION")) || strcmp(cp, variable_get(VAR_RELNAME)))) {
|
||||||
if (cdromMounted != CD_ALREADY_MOUNTED)
|
if (cdromMounted != CD_ALREADY_MOUNTED)
|
||||||
unmount("/cdrom", MNT_FORCE);
|
unmount("/cdrom", MNT_FORCE);
|
||||||
@ -117,12 +118,18 @@ mediaInitCDROM(Device *dev)
|
|||||||
"try again.");
|
"try again.");
|
||||||
else
|
else
|
||||||
msgConfirm("Warning: The version of the FreeBSD CD currently in the drive\n"
|
msgConfirm("Warning: The version of the FreeBSD CD currently in the drive\n"
|
||||||
"(%s) does not match the version of this boot floppy\n"
|
"(%s) does not match the version of the boot floppy\n"
|
||||||
"(%s).\n\n"
|
"(%s).\n\n"
|
||||||
"If this is intentional, then please visit the Options editor\n"
|
"If this is intentional, to avoid this message in the future\n"
|
||||||
"to set the boot floppy version string to match that of the CD\n"
|
"please visit the Options editor to set the boot floppy version\n"
|
||||||
"before selecting it as an installation media.", cp, variable_get(VAR_RELNAME));
|
"string to match that of the CD before selecting it as your\n"
|
||||||
return FALSE;
|
"installation media.", cp, variable_get(VAR_RELNAME));
|
||||||
|
|
||||||
|
if (msgYesNo("Would you like to try and use this CDROM anyway?") != 0) {
|
||||||
|
unmount("/cdrom", MNT_FORCE);
|
||||||
|
cdromMounted = CD_UNMOUNTED;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
msgDebug("Mounted FreeBSD CDROM on device %s as /cdrom\n", dev->devname);
|
msgDebug("Mounted FreeBSD CDROM on device %s as /cdrom\n", dev->devname);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -151,8 +158,7 @@ mediaGetCDROM(Device *dev, char *file, Boolean probe)
|
|||||||
void
|
void
|
||||||
mediaShutdownCDROM(Device *dev)
|
mediaShutdownCDROM(Device *dev)
|
||||||
{
|
{
|
||||||
/* Only undo it if we did it */
|
if (cdromMounted == CD_UNMOUNTED)
|
||||||
if (cdromMounted != CD_WE_MOUNTED_IT)
|
|
||||||
return;
|
return;
|
||||||
msgDebug("Unmounting %s from /cdrom\n", dev->devname);
|
msgDebug("Unmounting %s from /cdrom\n", dev->devname);
|
||||||
if (unmount("/cdrom", MNT_FORCE) != 0) {
|
if (unmount("/cdrom", MNT_FORCE) != 0) {
|
||||||
@ -160,7 +166,7 @@ mediaShutdownCDROM(Device *dev)
|
|||||||
cdromMounted = CD_ALREADY_MOUNTED; /* Guess somebody else got it */
|
cdromMounted = CD_ALREADY_MOUNTED; /* Guess somebody else got it */
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
msgDebug("Unmount successful\n");
|
msgDebug("Unmount of CDROM successful\n");
|
||||||
cdromMounted = CD_UNMOUNTED;
|
cdromMounted = CD_UNMOUNTED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* This is probably the last program in the `sysinstall' line - the next
|
* This is probably the last program in the `sysinstall' line - the next
|
||||||
* generation being essentially a complete rewrite.
|
* generation being essentially a complete rewrite.
|
||||||
*
|
*
|
||||||
* $Id: install.c,v 1.146 1996/12/26 03:32:50 jkh Exp $
|
* $Id: install.c,v 1.147 1996/12/29 05:51:35 jkh Exp $
|
||||||
*
|
*
|
||||||
* Copyright (c) 1995
|
* Copyright (c) 1995
|
||||||
* Jordan Hubbard. All rights reserved.
|
* Jordan Hubbard. All rights reserved.
|
||||||
@ -249,7 +249,6 @@ installFixitHoloShell(dialogMenuItem *self)
|
|||||||
return DITEM_SUCCESS;
|
return DITEM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
installFixitCDROM(dialogMenuItem *self)
|
installFixitCDROM(dialogMenuItem *self)
|
||||||
{
|
{
|
||||||
@ -260,11 +259,14 @@ installFixitCDROM(dialogMenuItem *self)
|
|||||||
(void)rmdir("/mnt2");
|
(void)rmdir("/mnt2");
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
msgConfirm("Please insert the second CD-ROM and press return");
|
msgConfirm("Please insert the second FreeBSD CDROM and press return");
|
||||||
if (DITEM_STATUS(mediaSetCDROM(NULL)) != DITEM_SUCCESS || !mediaDevice->init(mediaDevice)) {
|
if (DITEM_STATUS(mediaSetCDROM(NULL)) != DITEM_SUCCESS || !mediaDevice || !mediaDevice->init(mediaDevice)) {
|
||||||
/* If we can't initialize it, it's probably not a FreeBSD CDROM so punt on it */
|
/* If we can't initialize it, it's probably not a FreeBSD CDROM so punt on it */
|
||||||
mediaDevice = NULL;
|
if (mediaDevice) {
|
||||||
if (msgYesNo("Unable to mount the CD-ROM - do you want to try again?") != 0)
|
mediaDevice->shutdown(mediaDevice);
|
||||||
|
mediaDevice = NULL;
|
||||||
|
}
|
||||||
|
if (msgYesNo("Unable to mount the CDROM - do you want to try again?") != 0)
|
||||||
return DITEM_FAILURE;
|
return DITEM_FAILURE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -280,7 +282,7 @@ installFixitCDROM(dialogMenuItem *self)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* If /tmp points to /mnt2/tmp from a previous fixit floppy session, it's
|
* If /tmp points to /mnt2/tmp from a previous fixit floppy session, it's
|
||||||
* not very good for us if we point it to the CD-ROM now. Rather make it
|
* not very good for us if we point it to the CDROM now. Rather make it
|
||||||
* a directory in the root MFS then. Experienced admins will still be
|
* a directory in the root MFS then. Experienced admins will still be
|
||||||
* able to mount their disk's /tmp over this if they need.
|
* able to mount their disk's /tmp over this if they need.
|
||||||
*/
|
*/
|
||||||
@ -296,7 +298,7 @@ installFixitCDROM(dialogMenuItem *self)
|
|||||||
Mkdir("/var/run");
|
Mkdir("/var/run");
|
||||||
if (vsystem("/mnt2/sbin/ldconfig -s /mnt2/usr/lib")) {
|
if (vsystem("/mnt2/sbin/ldconfig -s /mnt2/usr/lib")) {
|
||||||
msgConfirm("Warning: ldconfig could not create the ld.so hints file.\n"
|
msgConfirm("Warning: ldconfig could not create the ld.so hints file.\n"
|
||||||
"Dynamic executables from the CD-ROM likely won't work.");
|
"Dynamic executables from the CDROM likely won't work.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -305,13 +307,14 @@ installFixitCDROM(dialogMenuItem *self)
|
|||||||
Mkdir("/usr/libexec");
|
Mkdir("/usr/libexec");
|
||||||
if (symlink("/mnt2/usr/libexec/ld.so", "/usr/libexec/ld.so")) {
|
if (symlink("/mnt2/usr/libexec/ld.so", "/usr/libexec/ld.so")) {
|
||||||
msgConfirm("Warning: could not create the symlink for ld.so.\n"
|
msgConfirm("Warning: could not create the symlink for ld.so.\n"
|
||||||
"Dynamic executables from the CD-ROM likely won't work.");
|
"Dynamic executables from the CDROM likely won't work.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fixit_common();
|
fixit_common();
|
||||||
|
|
||||||
msgConfirm("Please remove the CD-ROM now.");
|
msgConfirm("Please remove the FreeBSD CDROM now.");
|
||||||
|
mediaDevice->shutdown(mediaDevice);
|
||||||
return DITEM_SUCCESS;
|
return DITEM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -343,6 +346,7 @@ installFixitFloppy(dialogMenuItem *self)
|
|||||||
fixit_common();
|
fixit_common();
|
||||||
|
|
||||||
msgConfirm("Please remove the fixit floppy now.");
|
msgConfirm("Please remove the fixit floppy now.");
|
||||||
|
unmount("/mnt2", MNT_FORCE);
|
||||||
return DITEM_SUCCESS;
|
return DITEM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -413,7 +417,6 @@ fixit_common(void)
|
|||||||
"the fixit shell and be returned here.");
|
"the fixit shell and be returned here.");
|
||||||
(void)waitpid(child, &waitstatus, 0);
|
(void)waitpid(child, &waitstatus, 0);
|
||||||
}
|
}
|
||||||
unmount("/mnt2", MNT_FORCE);
|
|
||||||
dialog_clear();
|
dialog_clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* This is probably the last program in the `sysinstall' line - the next
|
* This is probably the last program in the `sysinstall' line - the next
|
||||||
* generation being essentially a complete rewrite.
|
* generation being essentially a complete rewrite.
|
||||||
*
|
*
|
||||||
* $Id: install.c,v 1.146 1996/12/26 03:32:50 jkh Exp $
|
* $Id: install.c,v 1.147 1996/12/29 05:51:35 jkh Exp $
|
||||||
*
|
*
|
||||||
* Copyright (c) 1995
|
* Copyright (c) 1995
|
||||||
* Jordan Hubbard. All rights reserved.
|
* Jordan Hubbard. All rights reserved.
|
||||||
@ -249,7 +249,6 @@ installFixitHoloShell(dialogMenuItem *self)
|
|||||||
return DITEM_SUCCESS;
|
return DITEM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
installFixitCDROM(dialogMenuItem *self)
|
installFixitCDROM(dialogMenuItem *self)
|
||||||
{
|
{
|
||||||
@ -260,11 +259,14 @@ installFixitCDROM(dialogMenuItem *self)
|
|||||||
(void)rmdir("/mnt2");
|
(void)rmdir("/mnt2");
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
msgConfirm("Please insert the second CD-ROM and press return");
|
msgConfirm("Please insert the second FreeBSD CDROM and press return");
|
||||||
if (DITEM_STATUS(mediaSetCDROM(NULL)) != DITEM_SUCCESS || !mediaDevice->init(mediaDevice)) {
|
if (DITEM_STATUS(mediaSetCDROM(NULL)) != DITEM_SUCCESS || !mediaDevice || !mediaDevice->init(mediaDevice)) {
|
||||||
/* If we can't initialize it, it's probably not a FreeBSD CDROM so punt on it */
|
/* If we can't initialize it, it's probably not a FreeBSD CDROM so punt on it */
|
||||||
mediaDevice = NULL;
|
if (mediaDevice) {
|
||||||
if (msgYesNo("Unable to mount the CD-ROM - do you want to try again?") != 0)
|
mediaDevice->shutdown(mediaDevice);
|
||||||
|
mediaDevice = NULL;
|
||||||
|
}
|
||||||
|
if (msgYesNo("Unable to mount the CDROM - do you want to try again?") != 0)
|
||||||
return DITEM_FAILURE;
|
return DITEM_FAILURE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -280,7 +282,7 @@ installFixitCDROM(dialogMenuItem *self)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* If /tmp points to /mnt2/tmp from a previous fixit floppy session, it's
|
* If /tmp points to /mnt2/tmp from a previous fixit floppy session, it's
|
||||||
* not very good for us if we point it to the CD-ROM now. Rather make it
|
* not very good for us if we point it to the CDROM now. Rather make it
|
||||||
* a directory in the root MFS then. Experienced admins will still be
|
* a directory in the root MFS then. Experienced admins will still be
|
||||||
* able to mount their disk's /tmp over this if they need.
|
* able to mount their disk's /tmp over this if they need.
|
||||||
*/
|
*/
|
||||||
@ -296,7 +298,7 @@ installFixitCDROM(dialogMenuItem *self)
|
|||||||
Mkdir("/var/run");
|
Mkdir("/var/run");
|
||||||
if (vsystem("/mnt2/sbin/ldconfig -s /mnt2/usr/lib")) {
|
if (vsystem("/mnt2/sbin/ldconfig -s /mnt2/usr/lib")) {
|
||||||
msgConfirm("Warning: ldconfig could not create the ld.so hints file.\n"
|
msgConfirm("Warning: ldconfig could not create the ld.so hints file.\n"
|
||||||
"Dynamic executables from the CD-ROM likely won't work.");
|
"Dynamic executables from the CDROM likely won't work.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -305,13 +307,14 @@ installFixitCDROM(dialogMenuItem *self)
|
|||||||
Mkdir("/usr/libexec");
|
Mkdir("/usr/libexec");
|
||||||
if (symlink("/mnt2/usr/libexec/ld.so", "/usr/libexec/ld.so")) {
|
if (symlink("/mnt2/usr/libexec/ld.so", "/usr/libexec/ld.so")) {
|
||||||
msgConfirm("Warning: could not create the symlink for ld.so.\n"
|
msgConfirm("Warning: could not create the symlink for ld.so.\n"
|
||||||
"Dynamic executables from the CD-ROM likely won't work.");
|
"Dynamic executables from the CDROM likely won't work.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fixit_common();
|
fixit_common();
|
||||||
|
|
||||||
msgConfirm("Please remove the CD-ROM now.");
|
msgConfirm("Please remove the FreeBSD CDROM now.");
|
||||||
|
mediaDevice->shutdown(mediaDevice);
|
||||||
return DITEM_SUCCESS;
|
return DITEM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -343,6 +346,7 @@ installFixitFloppy(dialogMenuItem *self)
|
|||||||
fixit_common();
|
fixit_common();
|
||||||
|
|
||||||
msgConfirm("Please remove the fixit floppy now.");
|
msgConfirm("Please remove the fixit floppy now.");
|
||||||
|
unmount("/mnt2", MNT_FORCE);
|
||||||
return DITEM_SUCCESS;
|
return DITEM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -413,7 +417,6 @@ fixit_common(void)
|
|||||||
"the fixit shell and be returned here.");
|
"the fixit shell and be returned here.");
|
||||||
(void)waitpid(child, &waitstatus, 0);
|
(void)waitpid(child, &waitstatus, 0);
|
||||||
}
|
}
|
||||||
unmount("/mnt2", MNT_FORCE);
|
|
||||||
dialog_clear();
|
dialog_clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* This is probably the last attempt in the `sysinstall' line, the next
|
* This is probably the last attempt in the `sysinstall' line, the next
|
||||||
* generation being slated to essentially a complete rewrite.
|
* generation being slated to essentially a complete rewrite.
|
||||||
*
|
*
|
||||||
* $Id: cdrom.c,v 1.30 1996/12/12 16:55:37 jkh Exp $
|
* $Id: cdrom.c,v 1.31 1997/01/01 12:36:05 jkh Exp $
|
||||||
*
|
*
|
||||||
* Copyright (c) 1995
|
* Copyright (c) 1995
|
||||||
* Jordan Hubbard. All rights reserved.
|
* Jordan Hubbard. All rights reserved.
|
||||||
@ -65,7 +65,7 @@ mediaInitCDROM(Device *dev)
|
|||||||
struct iso_args args;
|
struct iso_args args;
|
||||||
Attribs *cd_attr;
|
Attribs *cd_attr;
|
||||||
char *cp;
|
char *cp;
|
||||||
Boolean dontRead;
|
Boolean readInfo = TRUE;
|
||||||
|
|
||||||
if (cdromMounted != CD_UNMOUNTED)
|
if (cdromMounted != CD_UNMOUNTED)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -76,7 +76,6 @@ mediaInitCDROM(Device *dev)
|
|||||||
|
|
||||||
cd_attr = alloca(sizeof(Attribs) * MAX_ATTRIBS);
|
cd_attr = alloca(sizeof(Attribs) * MAX_ATTRIBS);
|
||||||
cp = NULL;
|
cp = NULL;
|
||||||
dontRead = FALSE;
|
|
||||||
/* If this cdrom's not already mounted or can't be mounted, yell */
|
/* If this cdrom's not already mounted or can't be mounted, yell */
|
||||||
if (!file_readable("/cdrom/cdrom.inf")) {
|
if (!file_readable("/cdrom/cdrom.inf")) {
|
||||||
Mkdir("/cdrom");
|
Mkdir("/cdrom");
|
||||||
@ -97,15 +96,17 @@ mediaInitCDROM(Device *dev)
|
|||||||
"CD or it is an older (pre 2.1.5) FreeBSD CD which does not\n"
|
"CD or it is an older (pre 2.1.5) FreeBSD CD which does not\n"
|
||||||
"have a version number on it. Do you wish to use this CD anyway?") != 0) {
|
"have a version number on it. Do you wish to use this CD anyway?") != 0) {
|
||||||
unmount("/cdrom", MNT_FORCE);
|
unmount("/cdrom", MNT_FORCE);
|
||||||
|
cdromMounted = CD_UNMOUNTED;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
dontRead = TRUE;
|
else
|
||||||
|
readInfo = FALSE;
|
||||||
}
|
}
|
||||||
cdromMounted = CD_WE_MOUNTED_IT;
|
cdromMounted = CD_WE_MOUNTED_IT;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
cdromMounted = CD_ALREADY_MOUNTED;
|
cdromMounted = CD_ALREADY_MOUNTED;
|
||||||
if (!dontRead && (DITEM_STATUS(attr_parse_file(cd_attr, "/cdrom/cdrom.inf")) == DITEM_FAILURE ||
|
if (readInfo && (DITEM_STATUS(attr_parse_file(cd_attr, "/cdrom/cdrom.inf")) == DITEM_FAILURE ||
|
||||||
!(cp = attr_match(cd_attr, "CD_VERSION")) || strcmp(cp, variable_get(VAR_RELNAME)))) {
|
!(cp = attr_match(cd_attr, "CD_VERSION")) || strcmp(cp, variable_get(VAR_RELNAME)))) {
|
||||||
if (cdromMounted != CD_ALREADY_MOUNTED)
|
if (cdromMounted != CD_ALREADY_MOUNTED)
|
||||||
unmount("/cdrom", MNT_FORCE);
|
unmount("/cdrom", MNT_FORCE);
|
||||||
@ -117,12 +118,18 @@ mediaInitCDROM(Device *dev)
|
|||||||
"try again.");
|
"try again.");
|
||||||
else
|
else
|
||||||
msgConfirm("Warning: The version of the FreeBSD CD currently in the drive\n"
|
msgConfirm("Warning: The version of the FreeBSD CD currently in the drive\n"
|
||||||
"(%s) does not match the version of this boot floppy\n"
|
"(%s) does not match the version of the boot floppy\n"
|
||||||
"(%s).\n\n"
|
"(%s).\n\n"
|
||||||
"If this is intentional, then please visit the Options editor\n"
|
"If this is intentional, to avoid this message in the future\n"
|
||||||
"to set the boot floppy version string to match that of the CD\n"
|
"please visit the Options editor to set the boot floppy version\n"
|
||||||
"before selecting it as an installation media.", cp, variable_get(VAR_RELNAME));
|
"string to match that of the CD before selecting it as your\n"
|
||||||
return FALSE;
|
"installation media.", cp, variable_get(VAR_RELNAME));
|
||||||
|
|
||||||
|
if (msgYesNo("Would you like to try and use this CDROM anyway?") != 0) {
|
||||||
|
unmount("/cdrom", MNT_FORCE);
|
||||||
|
cdromMounted = CD_UNMOUNTED;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
msgDebug("Mounted FreeBSD CDROM on device %s as /cdrom\n", dev->devname);
|
msgDebug("Mounted FreeBSD CDROM on device %s as /cdrom\n", dev->devname);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -151,8 +158,7 @@ mediaGetCDROM(Device *dev, char *file, Boolean probe)
|
|||||||
void
|
void
|
||||||
mediaShutdownCDROM(Device *dev)
|
mediaShutdownCDROM(Device *dev)
|
||||||
{
|
{
|
||||||
/* Only undo it if we did it */
|
if (cdromMounted == CD_UNMOUNTED)
|
||||||
if (cdromMounted != CD_WE_MOUNTED_IT)
|
|
||||||
return;
|
return;
|
||||||
msgDebug("Unmounting %s from /cdrom\n", dev->devname);
|
msgDebug("Unmounting %s from /cdrom\n", dev->devname);
|
||||||
if (unmount("/cdrom", MNT_FORCE) != 0) {
|
if (unmount("/cdrom", MNT_FORCE) != 0) {
|
||||||
@ -160,7 +166,7 @@ mediaShutdownCDROM(Device *dev)
|
|||||||
cdromMounted = CD_ALREADY_MOUNTED; /* Guess somebody else got it */
|
cdromMounted = CD_ALREADY_MOUNTED; /* Guess somebody else got it */
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
msgDebug("Unmount successful\n");
|
msgDebug("Unmount of CDROM successful\n");
|
||||||
cdromMounted = CD_UNMOUNTED;
|
cdromMounted = CD_UNMOUNTED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* This is probably the last program in the `sysinstall' line - the next
|
* This is probably the last program in the `sysinstall' line - the next
|
||||||
* generation being essentially a complete rewrite.
|
* generation being essentially a complete rewrite.
|
||||||
*
|
*
|
||||||
* $Id: install.c,v 1.146 1996/12/26 03:32:50 jkh Exp $
|
* $Id: install.c,v 1.147 1996/12/29 05:51:35 jkh Exp $
|
||||||
*
|
*
|
||||||
* Copyright (c) 1995
|
* Copyright (c) 1995
|
||||||
* Jordan Hubbard. All rights reserved.
|
* Jordan Hubbard. All rights reserved.
|
||||||
@ -249,7 +249,6 @@ installFixitHoloShell(dialogMenuItem *self)
|
|||||||
return DITEM_SUCCESS;
|
return DITEM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
installFixitCDROM(dialogMenuItem *self)
|
installFixitCDROM(dialogMenuItem *self)
|
||||||
{
|
{
|
||||||
@ -260,11 +259,14 @@ installFixitCDROM(dialogMenuItem *self)
|
|||||||
(void)rmdir("/mnt2");
|
(void)rmdir("/mnt2");
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
msgConfirm("Please insert the second CD-ROM and press return");
|
msgConfirm("Please insert the second FreeBSD CDROM and press return");
|
||||||
if (DITEM_STATUS(mediaSetCDROM(NULL)) != DITEM_SUCCESS || !mediaDevice->init(mediaDevice)) {
|
if (DITEM_STATUS(mediaSetCDROM(NULL)) != DITEM_SUCCESS || !mediaDevice || !mediaDevice->init(mediaDevice)) {
|
||||||
/* If we can't initialize it, it's probably not a FreeBSD CDROM so punt on it */
|
/* If we can't initialize it, it's probably not a FreeBSD CDROM so punt on it */
|
||||||
mediaDevice = NULL;
|
if (mediaDevice) {
|
||||||
if (msgYesNo("Unable to mount the CD-ROM - do you want to try again?") != 0)
|
mediaDevice->shutdown(mediaDevice);
|
||||||
|
mediaDevice = NULL;
|
||||||
|
}
|
||||||
|
if (msgYesNo("Unable to mount the CDROM - do you want to try again?") != 0)
|
||||||
return DITEM_FAILURE;
|
return DITEM_FAILURE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -280,7 +282,7 @@ installFixitCDROM(dialogMenuItem *self)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* If /tmp points to /mnt2/tmp from a previous fixit floppy session, it's
|
* If /tmp points to /mnt2/tmp from a previous fixit floppy session, it's
|
||||||
* not very good for us if we point it to the CD-ROM now. Rather make it
|
* not very good for us if we point it to the CDROM now. Rather make it
|
||||||
* a directory in the root MFS then. Experienced admins will still be
|
* a directory in the root MFS then. Experienced admins will still be
|
||||||
* able to mount their disk's /tmp over this if they need.
|
* able to mount their disk's /tmp over this if they need.
|
||||||
*/
|
*/
|
||||||
@ -296,7 +298,7 @@ installFixitCDROM(dialogMenuItem *self)
|
|||||||
Mkdir("/var/run");
|
Mkdir("/var/run");
|
||||||
if (vsystem("/mnt2/sbin/ldconfig -s /mnt2/usr/lib")) {
|
if (vsystem("/mnt2/sbin/ldconfig -s /mnt2/usr/lib")) {
|
||||||
msgConfirm("Warning: ldconfig could not create the ld.so hints file.\n"
|
msgConfirm("Warning: ldconfig could not create the ld.so hints file.\n"
|
||||||
"Dynamic executables from the CD-ROM likely won't work.");
|
"Dynamic executables from the CDROM likely won't work.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -305,13 +307,14 @@ installFixitCDROM(dialogMenuItem *self)
|
|||||||
Mkdir("/usr/libexec");
|
Mkdir("/usr/libexec");
|
||||||
if (symlink("/mnt2/usr/libexec/ld.so", "/usr/libexec/ld.so")) {
|
if (symlink("/mnt2/usr/libexec/ld.so", "/usr/libexec/ld.so")) {
|
||||||
msgConfirm("Warning: could not create the symlink for ld.so.\n"
|
msgConfirm("Warning: could not create the symlink for ld.so.\n"
|
||||||
"Dynamic executables from the CD-ROM likely won't work.");
|
"Dynamic executables from the CDROM likely won't work.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fixit_common();
|
fixit_common();
|
||||||
|
|
||||||
msgConfirm("Please remove the CD-ROM now.");
|
msgConfirm("Please remove the FreeBSD CDROM now.");
|
||||||
|
mediaDevice->shutdown(mediaDevice);
|
||||||
return DITEM_SUCCESS;
|
return DITEM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -343,6 +346,7 @@ installFixitFloppy(dialogMenuItem *self)
|
|||||||
fixit_common();
|
fixit_common();
|
||||||
|
|
||||||
msgConfirm("Please remove the fixit floppy now.");
|
msgConfirm("Please remove the fixit floppy now.");
|
||||||
|
unmount("/mnt2", MNT_FORCE);
|
||||||
return DITEM_SUCCESS;
|
return DITEM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -413,7 +417,6 @@ fixit_common(void)
|
|||||||
"the fixit shell and be returned here.");
|
"the fixit shell and be returned here.");
|
||||||
(void)waitpid(child, &waitstatus, 0);
|
(void)waitpid(child, &waitstatus, 0);
|
||||||
}
|
}
|
||||||
unmount("/mnt2", MNT_FORCE);
|
|
||||||
dialog_clear();
|
dialog_clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user