1994-10-20 06:00:00 +01:00
|
|
|
/*
|
|
|
|
* ----------------------------------------------------------------------------
|
|
|
|
* "THE BEER-WARE LICENSE" (Revision 42):
|
|
|
|
* <phk@login.dkuug.dk> wrote this file. As long as you retain this notice you
|
|
|
|
* can do whatever you want with this stuff. If we meet some day, and you think
|
|
|
|
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
|
|
|
* ----------------------------------------------------------------------------
|
|
|
|
*
|
1995-03-19 06:28:48 +00:00
|
|
|
* $Id: stage2.c,v 1.26 1995/03/15 06:16:10 phk Exp $
|
1994-10-20 06:00:00 +01:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdarg.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <unistd.h>
|
1994-12-27 23:26:59 +00:00
|
|
|
|
1994-10-20 06:00:00 +01:00
|
|
|
#include <fcntl.h>
|
|
|
|
#include <dialog.h>
|
|
|
|
#include <errno.h>
|
|
|
|
|
|
|
|
#include <sys/stat.h>
|
1994-10-20 07:48:40 +01:00
|
|
|
#include <sys/param.h>
|
|
|
|
#include <sys/mount.h>
|
1995-02-13 06:52:16 +00:00
|
|
|
#include <sys/wait.h>
|
1994-10-20 06:00:00 +01:00
|
|
|
|
|
|
|
#include "sysinstall.h"
|
|
|
|
|
|
|
|
void
|
|
|
|
stage2()
|
|
|
|
{
|
1994-11-02 06:19:53 +00:00
|
|
|
char *p, *q;
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
char pbuf[90];
|
|
|
|
char dbuf[90];
|
|
|
|
FILE *f1;
|
1995-02-13 06:52:16 +00:00
|
|
|
int i, j, k;
|
|
|
|
int ffd, pfd[2];
|
|
|
|
int zpid, cpid;
|
1994-10-20 06:00:00 +01:00
|
|
|
|
1994-12-27 23:26:59 +00:00
|
|
|
memset(Fsize, 0, sizeof Fsize);
|
|
|
|
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
/* Sort in mountpoint order */
|
1994-12-27 23:26:59 +00:00
|
|
|
for (i = 1; Fname[i]; i++)
|
|
|
|
Fsize[i] = i;
|
|
|
|
Fsize[i] = 0;
|
|
|
|
|
1994-11-02 06:19:53 +00:00
|
|
|
for (j = 1; j;)
|
1994-12-27 23:26:59 +00:00
|
|
|
for (j = 0, i = 1; Fsize[i+1]; i++) {
|
|
|
|
if (strcmp(Fmount[Fsize[i]], Fmount[Fsize[i+1]]) > 0) {
|
|
|
|
j = Fsize[i];
|
|
|
|
Fsize[i] = Fsize[i+1];
|
|
|
|
Fsize[i + 1] = j;
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
}
|
1994-10-20 07:48:40 +01:00
|
|
|
}
|
1994-12-27 23:26:59 +00:00
|
|
|
|
|
|
|
for (j = 1; Fsize[j]; j++) {
|
|
|
|
if (strcmp(Ftype[Fsize[j]], "ufs"))
|
1994-11-19 23:59:03 +00:00
|
|
|
continue;
|
1994-12-27 23:26:59 +00:00
|
|
|
p = Fname[Fsize[j]];
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
strcpy(pbuf, "/dev/r");
|
|
|
|
strcat(pbuf, p);
|
1994-12-27 23:26:59 +00:00
|
|
|
if (!Faction[Fsize[j]]) {
|
|
|
|
TellEm("fsck -y /dev/r%s",p);
|
|
|
|
i = exec(0, "/stand/fsck", "/stand/fsck", "-y", pbuf, 0);
|
|
|
|
if (i)
|
|
|
|
Fatal("Exec(/stand/fsck) failed, code=%d.",i);
|
|
|
|
} else {
|
|
|
|
TellEm("newfs /dev/r%s",p);
|
|
|
|
i = exec(0, "/stand/newfs", "/stand/newfs", "-n", "1", pbuf, 0);
|
|
|
|
if (i)
|
|
|
|
Fatal("Exec(/stand/newfs) failed, code=%d.",i);
|
1994-11-19 23:59:03 +00:00
|
|
|
}
|
1994-12-27 23:26:59 +00:00
|
|
|
}
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
|
1994-12-27 23:26:59 +00:00
|
|
|
for (j = 1; Fsize[j]; j++) {
|
1995-02-02 05:35:36 +00:00
|
|
|
if (!strcmp(Ftype[Fsize[j]], "swap"))
|
1994-12-27 23:26:59 +00:00
|
|
|
continue;
|
1994-11-20 00:49:21 +00:00
|
|
|
strcpy(dbuf, "/mnt");
|
1994-12-27 23:26:59 +00:00
|
|
|
p = Fname[Fsize[j]];
|
|
|
|
q = Fmount[Fsize[j]];
|
|
|
|
if (strcmp(q, "/"))
|
1994-11-02 06:19:53 +00:00
|
|
|
strcat(dbuf, q);
|
1995-02-02 05:35:36 +00:00
|
|
|
if (!strcmp(Ftype[Fsize[j]], "ufs")) {
|
|
|
|
MountUfs(p, dbuf, 1, 0);
|
|
|
|
continue;
|
1995-02-13 06:52:16 +00:00
|
|
|
} else {
|
|
|
|
Mkdir(dbuf, FALSE);
|
|
|
|
}
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
}
|
|
|
|
|
1995-01-14 10:31:29 +00:00
|
|
|
Mkdir("/mnt/etc", TRUE);
|
|
|
|
Mkdir("/mnt/dev", TRUE);
|
|
|
|
Mkdir("/mnt/mnt", TRUE);
|
|
|
|
Mkdir("/mnt/stand", TRUE);
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
|
1994-11-18 11:30:04 +00:00
|
|
|
TellEm("unzipping /stand/sysinstall onto hard disk");
|
|
|
|
exec(4, "/stand/gzip", "zcat", 0 );
|
1994-11-02 06:19:53 +00:00
|
|
|
Link("/mnt/stand/sysinstall","/mnt/stand/cpio");
|
1994-11-18 11:30:04 +00:00
|
|
|
Link("/mnt/stand/sysinstall","/mnt/stand/bad144");
|
1994-11-02 06:19:53 +00:00
|
|
|
Link("/mnt/stand/sysinstall","/mnt/stand/gunzip");
|
|
|
|
Link("/mnt/stand/sysinstall","/mnt/stand/gzip");
|
|
|
|
Link("/mnt/stand/sysinstall","/mnt/stand/zcat");
|
|
|
|
Link("/mnt/stand/sysinstall","/mnt/stand/newfs");
|
|
|
|
Link("/mnt/stand/sysinstall","/mnt/stand/fsck");
|
|
|
|
Link("/mnt/stand/sysinstall","/mnt/stand/dialog");
|
|
|
|
|
1994-12-27 23:26:59 +00:00
|
|
|
if (fixit) {
|
|
|
|
for (i=0;i<100;i++) {
|
|
|
|
sprintf(pbuf,"/mnt/etc/fstab.before.fixit.%d",i);
|
|
|
|
if (access(pbuf,R_OK)) {
|
|
|
|
rename("/mnt/etc/fstab",pbuf);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for (i=0;i<100;i++) {
|
|
|
|
sprintf(pbuf,"/mnt/kernel.before.fixit.%d",i);
|
|
|
|
if (access(pbuf,R_OK)) {
|
|
|
|
rename("/mnt/kernel",pbuf);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for (i=0;i<100;i++) {
|
|
|
|
sprintf(pbuf,"/mnt/sbin/init.before.fixit.%d",i);
|
|
|
|
if (access(pbuf,R_OK)) {
|
|
|
|
rename("/mnt/sbin/init",pbuf);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
TellEm("make /dev entries");
|
|
|
|
chdir("/mnt/dev");
|
|
|
|
makedevs();
|
|
|
|
chdir("/");
|
|
|
|
|
|
|
|
TellEm("Making /mnt/etc/fstab");
|
|
|
|
f1 = fopen("/mnt/etc/fstab","w");
|
1994-11-02 06:19:53 +00:00
|
|
|
if (!f1)
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
Fatal("Couldn't open /mnt/etc/fstab for writing.");
|
|
|
|
|
|
|
|
TellEm("Writing filesystems");
|
1995-01-14 10:31:29 +00:00
|
|
|
chdir("/mnt");
|
1994-12-27 23:26:59 +00:00
|
|
|
for (j = 1; Fsize[j]; j++) {
|
|
|
|
if (!strcmp(Ftype[Fsize[j]],"swap"))
|
|
|
|
fprintf(f1, "/dev/%s\t\tnone\tswap sw 0 0\n", Fname[Fsize[j]]);
|
1995-01-14 10:31:29 +00:00
|
|
|
else {
|
1994-11-02 06:19:53 +00:00
|
|
|
fprintf(f1, "/dev/%s\t\t%s\t%s rw 1 1\n",
|
1994-12-27 23:26:59 +00:00
|
|
|
Fname[Fsize[j]], Fmount[Fsize[j]], Ftype[Fsize[j]]);
|
1995-01-14 10:31:29 +00:00
|
|
|
Mkdir(Fmount[Fsize[j]], FALSE);
|
|
|
|
}
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
}
|
1995-01-14 10:31:29 +00:00
|
|
|
chdir("/");
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
TellEm("Writing procfs");
|
1995-03-19 06:28:48 +00:00
|
|
|
fprintf(f1,"proc\t\t\t/proc\tprocfs rw 0 0\n");
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
fclose(f1);
|
|
|
|
|
1995-01-30 03:19:58 +00:00
|
|
|
j = fork();
|
|
|
|
if (!j) {
|
|
|
|
chroot("/mnt");
|
|
|
|
chdir("/");
|
1995-02-13 06:52:16 +00:00
|
|
|
ffd = cpio_fd;
|
1995-01-30 03:19:58 +00:00
|
|
|
retry:
|
1995-02-13 06:52:16 +00:00
|
|
|
while (ffd < 0) {
|
1995-01-30 03:19:58 +00:00
|
|
|
dialog_msgbox(TITLE,
|
|
|
|
"Insert CPIO floppy in floppy drive 0", -1, -1, 1);
|
|
|
|
ffd = open("/dev/rfd0",O_RDONLY);
|
|
|
|
if (ffd > 0)
|
|
|
|
break;
|
|
|
|
Debug("problems opening /dev/rfd0: %d",errno);
|
|
|
|
}
|
|
|
|
dialog_clear_norefresh();
|
1995-03-15 06:16:10 +00:00
|
|
|
TellEm("gunzip < /dev/fd0 | cpio -idum");
|
1995-01-30 03:19:58 +00:00
|
|
|
pipe(pfd);
|
|
|
|
zpid = fork();
|
|
|
|
if (!zpid) {
|
|
|
|
close(0); dup(ffd); close(ffd);
|
|
|
|
close(1); dup(pfd[1]); close(pfd[1]);
|
|
|
|
close(pfd[0]);
|
|
|
|
i = exec (1,"/stand/gunzip","/stand/gunzip", 0);
|
|
|
|
exit(i);
|
|
|
|
}
|
|
|
|
cpid = fork();
|
|
|
|
if (!cpid) {
|
|
|
|
close(0); dup(pfd[0]); close(pfd[0]);
|
|
|
|
close(ffd);
|
|
|
|
close(pfd[1]);
|
|
|
|
close(1); open("/dev/null",O_WRONLY);
|
|
|
|
i = exec (1,"/stand/cpio","/stand/cpio","-iduvm", 0);
|
|
|
|
exit(i);
|
|
|
|
}
|
|
|
|
close(pfd[0]);
|
|
|
|
close(pfd[1]);
|
|
|
|
close(ffd);
|
|
|
|
i = wait(&j);
|
|
|
|
if (i < 0 || j)
|
|
|
|
Fatal("Pid %d, status %d, cpio=%d, gunzip=%d.\nerror:%s",
|
|
|
|
i, j, cpid, zpid, strerror(errno));
|
|
|
|
i = wait(&j);
|
|
|
|
if (i < 0 || j)
|
|
|
|
Fatal("Pid %d, status %d, cpio=%d, gunzip=%d.\nerror:%s",
|
|
|
|
i, j, cpid, zpid, strerror(errno));
|
|
|
|
|
|
|
|
/* bininst.sh MUST be the last file on the floppy */
|
1995-03-15 06:16:10 +00:00
|
|
|
if (access("/OK", R_OK) == -1) {
|
1995-01-30 03:19:58 +00:00
|
|
|
AskAbort("CPIO floppy was bad! Please check media for defects and retry.");
|
1995-02-13 06:52:16 +00:00
|
|
|
ffd = -1;
|
1995-01-30 03:19:58 +00:00
|
|
|
goto retry;
|
|
|
|
}
|
1995-03-15 06:16:10 +00:00
|
|
|
unlink("/OK");
|
|
|
|
exit (0);
|
1995-01-30 03:19:58 +00:00
|
|
|
}
|
|
|
|
i = wait(&k);
|
|
|
|
Debug("chroot'er: %d %d %d",i,j,k);
|
|
|
|
|
|
|
|
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
sync();
|
|
|
|
TellEm("Unmount disks");
|
1994-12-27 23:26:59 +00:00
|
|
|
for (j = 1; Fsize[j]; j++)
|
|
|
|
continue;
|
|
|
|
|
|
|
|
for (j--; j > 0; j--) {
|
|
|
|
if (!strcmp(Ftype[Fsize[j]],"swap"))
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
continue;
|
|
|
|
strcpy(dbuf,"/mnt");
|
1994-12-27 23:26:59 +00:00
|
|
|
if (strcmp(Fmount[Fsize[j]],"/"))
|
|
|
|
strcat(dbuf, Fmount[Fsize[j]]);
|
1994-11-02 06:19:53 +00:00
|
|
|
TellEm("unmount %s", dbuf);
|
Public apology:
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
1994-11-01 10:10:43 +00:00
|
|
|
/* Don't do error-check, we reboot anyway... */
|
|
|
|
unmount(dbuf, 0);
|
|
|
|
}
|
1994-12-27 23:26:59 +00:00
|
|
|
dialog_msgbox(TITLE,"Remove the floppy from the drive\n and hit return to reboot from the hard disk", -1, -1, 1);
|
1994-11-02 11:00:35 +00:00
|
|
|
dialog_clear();
|
1994-10-20 06:00:00 +01:00
|
|
|
}
|