First cut at sysinst for sandpoint.

This commit is contained in:
briggs 2001-10-24 19:43:40 +00:00
parent 163bd42722
commit 7bd7e68996
7 changed files with 1401 additions and 0 deletions

View File

@ -0,0 +1,14 @@
# $NetBSD: Makefile,v 1.1 2001/10/24 19:43:40 briggs Exp $
#
# Makefile for bebox
#
# have to have all of them here for crunch ...
SRCS= menu_defs.c msg_defs.c main.c install.c upgrade.c \
txtwalk.c run.c factor.c net.c disks.c disks_lfs.c util.c geom.c \
label.c target.c md.c mbr.c
fdisk.o md.o: menu_defs.h msg_defs.h
.include "../../Makefile.inc"

View File

@ -0,0 +1,411 @@
/* $NetBSD: md.c,v 1.1 2001/10/24 19:43:40 briggs Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
* All rights reserved.
*
* Written by Philip A. Nelson for Piermont Information Systems Inc.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed for the NetBSD Project by
* Piermont Information Systems Inc.
* 4. The name of Piermont Information Systems Inc. may not be used to endorse
* or promote products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL PIERMONT INFORMATION SYSTEMS INC. BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/* md.c -- Machine specific code for bebox */
#include <sys/param.h>
#include <sys/sysctl.h>
#include <stdio.h>
#include <util.h>
#include "defs.h"
#include "md.h"
#include "msg_defs.h"
#include "menu_defs.h"
int mbr_present;
int c1024_resp;
char mbr[512];
/* prototypes */
int md_get_info()
{
read_mbr(diskdev, mbr, sizeof mbr);
md_bios_info(diskdev);
return edit_mbr((struct mbr_partition *) &mbr[MBR_PARTOFF]);
}
int md_pre_disklabel()
{
printf ("%s", msg_string (MSG_dofdisk));
/* write edited MBR onto disk. */
if (write_mbr(diskdev, mbr, sizeof mbr, 1) != 0) {
msg_display(MSG_wmbrfail);
process_menu(MENU_ok);
return 1;
}
return 0;
}
int md_post_disklabel(void)
{
/* Sector forwarding / badblocks ... */
if (*doessf) {
printf ("%s", msg_string (MSG_dobad144));
return run_prog(RUN_DISPLAY, NULL, "/usr/sbin/bad144 %s 0",
diskdev);
}
return 0;
}
int md_post_newfs(void)
{
/* boot blocks ... */
printf (msg_string(MSG_dobootblks), diskdev);
run_prog (RUN_DISPLAY, NULL,
"/usr/mdec/installboot -v /usr/mdec/biosboot.sym "
"/dev/r%sa", diskdev);
return 0;
}
int md_copy_filesystem (void)
{
if (target_already_root()) {
return 0;
}
/* Copy the instbin(s) to the disk */
printf ("%s", msg_string(MSG_dotar));
if (run_prog (RUN_DISPLAY, NULL, "pax -X -r -w -pe / /mnt") != 0)
return 1;
/* Copy next-stage install profile into target /.profile. */
if (cp_to_target ("/tmp/.hdprofile", "/.profile")!= 0)
return 1;
return cp_to_target ("/usr/share/misc/termcap", "/.termcap");
}
int md_make_bsd_partitions (void)
{
FILE *f;
int i;
int part;
int maxpart = getmaxpartitions();
int remain;
char isize[20];
editlab:
/* Ask for layout type -- standard or special */
msg_display (MSG_layout,
(1.0*fsptsize*sectorsize)/MEG,
(1.0*minfsdmb*sectorsize)/MEG,
(1.0*minfsdmb*sectorsize)/MEG+rammb+XNEEDMB);
process_menu (MENU_layout);
if (layoutkind == 3) {
ask_sizemult(dlcylsize);
} else {
sizemult = MEG / sectorsize;
multname = msg_string(MSG_megname);
}
/* Build standard partitions */
emptylabel(bsdlabel);
/* Partitions C and D are predefined. */
bsdlabel[C].pi_fstype = FS_UNUSED;
bsdlabel[C].pi_offset = ptstart;
bsdlabel[C].pi_size = fsptsize;
bsdlabel[D].pi_fstype = FS_UNUSED;
bsdlabel[D].pi_offset = 0;
bsdlabel[D].pi_size = fsdsize;
/* Standard fstypes */
bsdlabel[A].pi_fstype = FS_BSDFFS;
bsdlabel[B].pi_fstype = FS_SWAP;
bsdlabel[E].pi_fstype = FS_UNUSED;
bsdlabel[F].pi_fstype = FS_UNUSED;
bsdlabel[G].pi_fstype = FS_UNUSED;
bsdlabel[H].pi_fstype = FS_UNUSED;
switch (layoutkind) {
case 1: /* standard: a root, b swap, c/d "unused", e /usr */
case 2: /* standard X: a root, b swap (big), c/d "unused", e /usr */
partstart = ptstart;
/* Root */
i = NUMSEC(20+2*rammb, MEG/sectorsize, dlcylsize) + partstart;
partsize = NUMSEC (i/(MEG/sectorsize)+1, MEG/sectorsize,
dlcylsize) - partstart;
bsdlabel[A].pi_offset = partstart;
bsdlabel[A].pi_size = partsize;
bsdlabel[A].pi_bsize = 8192;
bsdlabel[A].pi_fsize = 1024;
strcpy (fsmount[A], "/");
partstart += partsize;
/* swap */
i = NUMSEC(layoutkind * 2 * (rammb < 16 ? 16 : rammb),
MEG/sectorsize, dlcylsize) + partstart;
partsize = NUMSEC (i/(MEG/sectorsize)+1, MEG/sectorsize,
dlcylsize) - partstart;
bsdlabel[B].pi_offset = partstart;
bsdlabel[B].pi_size = partsize;
partstart += partsize;
/* /usr */
partsize = fsptsize - (partstart - ptstart);
bsdlabel[E].pi_fstype = FS_BSDFFS;
bsdlabel[E].pi_offset = partstart;
bsdlabel[E].pi_size = partsize;
bsdlabel[E].pi_bsize = 8192;
bsdlabel[E].pi_fsize = 1024;
strcpy (fsmount[E], "/usr");
break;
case 3: /* custom: ask user for all sizes */
ask_sizemult(dlcylsize);
partstart = ptstart;
remain = fsptsize;
/* root */
i = NUMSEC(20+2*rammb, MEG/sectorsize, dlcylsize) + partstart;
partsize = NUMSEC (i/(MEG/sectorsize)+1, MEG/sectorsize,
dlcylsize) - partstart;
snprintf (isize, 20, "%d", partsize/sizemult);
msg_prompt (MSG_askfsroot, isize, isize, 20,
remain/sizemult, multname);
partsize = NUMSEC(atoi(isize),sizemult, dlcylsize);
bsdlabel[A].pi_offset = partstart;
bsdlabel[A].pi_size = partsize;
bsdlabel[A].pi_bsize = 8192;
bsdlabel[A].pi_fsize = 1024;
strcpy (fsmount[A], "/");
partstart += partsize;
remain -= partsize;
/* swap */
i = NUMSEC( 2 * (rammb < 16 ? 16 : rammb),
MEG/sectorsize, dlcylsize) + partstart;
partsize = NUMSEC (i/(MEG/sectorsize)+1, MEG/sectorsize,
dlcylsize) - partstart;
snprintf (isize, 20, "%d", partsize/sizemult);
msg_prompt_add (MSG_askfsswap, isize, isize, 20,
remain/sizemult, multname);
partsize = NUMSEC(atoi(isize),sizemult, dlcylsize);
bsdlabel[B].pi_offset = partstart;
bsdlabel[B].pi_size = partsize;
partstart += partsize;
remain -= partsize;
/* Others E, F, G, H */
part = E;
if (remain > 0)
msg_display (MSG_otherparts);
while (remain > 0 && part <= H) {
partsize = remain;
snprintf (isize, 20, "%d", partsize/sizemult);
msg_prompt_add (MSG_askfspart, isize, isize, 20,
diskdev, partition_name(part),
remain/sizemult, multname);
partsize = NUMSEC(atoi(isize),sizemult, dlcylsize);
if (partsize > 0) {
if (remain - partsize < sizemult)
partsize = remain;
bsdlabel[part].pi_fstype = FS_BSDFFS;
bsdlabel[part].pi_offset = partstart;
bsdlabel[part].pi_size = partsize;
bsdlabel[part].pi_bsize = 8192;
bsdlabel[part].pi_fsize = 1024;
if (part == E)
strcpy (fsmount[E], "/usr");
msg_prompt_add (MSG_mountpoint, fsmount[part],
fsmount[part], 20);
partstart += partsize;
remain -= partsize;
}
part++;
}
break;
}
/*
* OK, we have a partition table. Give the user the chance to
* edit it and verify it's OK, or abort altogether.
*/
if (edit_and_check_label(bsdlabel, maxpart, RAW_PART, RAW_PART) == 0) {
msg_display(MSG_abort);
return 0;
}
if ((bsdlabel[A].pi_offset + bsdlabel[A].pi_bsize) / bcylsize > 1024) {
process_menu(MENU_cyl1024);
/* XXX UGH! need arguments to process_menu */
switch (c1024_resp) {
case 1:
edit_mbr((struct mbr_partition *) &mbr[MBR_PARTOFF]);
/*FALLTHROUGH*/
case 2:
goto editlab;
default:
break;
}
}
/* Disk name */
msg_prompt (MSG_packname, "mydisk", bsddiskname, DISKNAME_SIZE);
/* Create the disktab.preinstall */
run_prog (0, NULL, "cp /etc/disktab.preinstall /etc/disktab");
#ifdef DEBUG
f = fopen ("/tmp/disktab", "a");
#else
f = fopen ("/etc/disktab", "a");
#endif
if (f == NULL) {
endwin();
(void) fprintf (stderr, "Could not open /etc/disktab");
exit (1);
}
(void)fprintf (f, "%s|NetBSD installation generated:\\\n", bsddiskname);
(void)fprintf (f, "\t:dt=%s:ty=winchester:\\\n", disktype);
(void)fprintf (f, "\t:nc#%d:nt#%d:ns#%d:\\\n", dlcyl, dlhead, dlsec);
(void)fprintf (f, "\t:sc#%d:su#%d:\\\n", dlhead*dlsec, dlsize);
(void)fprintf (f, "\t:se#%d:%s\\\n", sectorsize, doessf);
for (i=0; i<8; i++) {
(void)fprintf (f, "\t:p%c#%d:o%c#%d:t%c=%s:",
'a'+i, bsdlabel[i].pi_size,
'a'+i, bsdlabel[i].pi_offset,
'a'+i, fstypenames[bsdlabel[i].pi_fstype]);
if (bsdlabel[i].pi_fstype == FS_BSDFFS)
(void)fprintf (f, "b%c#%d:f%c#%d",
'a'+i, bsdlabel[i].pi_bsize,
'a'+i, bsdlabel[i].pi_fsize);
if (i < 7)
(void)fprintf (f, "\\\n");
else
(void)fprintf (f, "\n");
}
fclose (f);
/* Everything looks OK. */
return (1);
}
/* Upgrade support */
int
md_update (void)
{
endwin();
md_copy_filesystem ();
md_post_newfs();
wrefresh(curscr);
wmove(stdscr, 0, 0);
wclear(stdscr);
wrefresh(stdscr);
return 1;
}
void
md_cleanup_install(void)
{
char realfrom[STRSIZE];
char realto[STRSIZE];
char sedcmd[STRSIZE];
strncpy(realfrom, target_expand("/etc/rc.conf"), STRSIZE);
strncpy(realto, target_expand("/etc/rc.conf.install"), STRSIZE);
sprintf(sedcmd, "sed 's/rc_configured=NO/rc_configured=YES/' < %s > %s",
realfrom, realto);
scripting_fprintf(log, "%s\n", sedcmd);
do_system(sedcmd);
run_prog(RUN_FATAL, NULL, "mv -f %s %s", realto, realfrom);
run_prog(0, NULL, "rm -f %s", target_expand("/sysinst"));
run_prog(0, NULL, "rm -f %s", target_expand("/.termcap"));
run_prog(0, NULL, "rm -f %s", target_expand("/.profile"));
}
int
md_pre_update()
{
return 1;
}
void
md_init()
{
}
int
md_bios_info(dev)
char *dev;
{
int cyl, head, sec;
msg_display(MSG_nobiosgeom, dlcyl, dlhead, dlsec);
if (guess_biosgeom_from_mbr(mbr, &cyl, &head, &sec) >= 0) {
msg_display_add(MSG_biosguess, cyl, head, sec);
set_bios_geom(cyl, head, sec);
} else
set_bios_geom(dlcyl, dlhead, dlsec);
bsize = bcyl * bhead * bsec;
bcylsize = bhead * bsec;
return 0;
}
void
md_set_sizemultname()
{
set_sizemultname_meg();
}
void
md_set_no_x()
{
toggle_getit (8);
toggle_getit (9);
toggle_getit (10);
toggle_getit (11);
toggle_getit (12);
toggle_getit (13);
}

View File

@ -0,0 +1,135 @@
/* $NetBSD: md.h,v 1.1 2001/10/24 19:43:40 briggs Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
* All rights reserved.
*
* Written by Philip A. Nelson for Piermont Information Systems Inc.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed for the NetBSD Project by
* Piermont Information Systems Inc.
* 4. The name of Piermont Information Systems Inc. may not be used to endorse
* or promote products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL PIERMONT INFORMATION SYSTEMS INC. BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/* md.h -- Machine specific definitions for the bebox */
/* bebox uses the mbr code. */
#include "mbr.h"
/* constants and defines */
/* Megs required for a full X installation. */
#define XNEEDMB 50
/*
* Default filesets to fetch and install during installation
* or upgrade. The standard sets are:
* base, etc, comp, games, man, misc, text,
* xbase, xfont, xserver, xcontrib, xcomp.
*
* bebox has the MD set kern first, because generic kernels are too
* big to fit on install floppies. bebox does not yet include the x sets.
*
* Third entry is the last extension name in the split sets for loading
* from floppy.
*/
EXTERN distinfo dist_list[]
#ifdef MAIN
= {
{"kern", 1, "ae", "Kernel : "},
{"base", 1, "bo", "Base : "},
{"etc", 1, "aa", "System (/etc): "},
{"comp", 1, "bd", "Compiler : "},
{"games", 1, "am", "Games : "},
{"man", 1, "ak", "Manuals : "},
{"misc", 1, "aj", "Miscellaneous: "},
{"text", 1, "ae", "Text tools : "},
/* XXX no X11 on floppies, what sets are they?*/
{"xbase", 1, "al", "X11 clients : "},
{"xfont", 1, "az", "X11 fonts : "},
{"xserver", 1, "ci", "X11 servers : "},
{"xcontrib",1, "aa", "X11 contrib : "},
{"xcomp", 1, "ah", "X programming: "},
{"xmisc", 1, NULL, "X11 Misc. : "},
{NULL, 0, NULL, NULL }
}
#endif
;
/*
* Disk names accepted as valid targets for a from-scratch installation.
*
* On bebox, we allow "wd" ST-506/IDE disks and "sd" scsi disks.
*/
EXTERN char *disk_names[]
#ifdef MAIN
= {"wd", "sd", NULL}
#endif
;
/*
* Legal start character for a disk for checking input.
* this must return 1 for a character that matches the first
* characters of each member of disk_names.
*
* On bebox, that means matching 'w' for st-506/ide and 's' for sd.
*/
#define ISDISKSTART(dn) (dn == 'w' || dn == 's')
/*
* Machine-specific command to write a new label to a disk.
* For example, bebox uses "/sbin/disklabel -w -r", just like bebox
* miniroot scripts, though this may leave a bogus incore label.
* Sun ports should probably use DISKLABEL_CMD "/sbin/disklabel -w"
* to get incore to ondisk inode translation for the Sun proms.
* If not defined, we assume the port does not support disklabels and
* hand-edited disklabel will NOT be written by MI code.
*
* On bebox, do what the 1.2 install scripts did.
*/
#define DISKLABEL_CMD "disklabel -w -r"
/*
* Default fileystem type for floppy disks.
* On bebox, that is msdos.
*/
EXTERN char *fdtype INIT("msdos");
/*
* prototypes for MD code.
*/

View File

@ -0,0 +1,196 @@
/* $NetBSD: menus.md.en,v 1.1 2001/10/24 19:43:40 briggs Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
* All rights reserved.
*
* Written by Philip A. Nelson for Piermont Information Systems Inc.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed for the NetBSD Project by
* Piermont Information Systems Inc.
* 4. The name of Piermont Information Systems Inc. may not be used to endorse
* or promote products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL PIERMONT INFORMATION SYSTEMS INC. BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/* Menu definitions for sysinst. bebox version, machine dependent. */
menu fullpart, title "Select your choice";
option "Use only part of the disk", exit, action {usefull = 0;};
option "Use the entire disk", exit, action {usefull = 1;};
menu wdtype, title "Select type";
display action { msg_display (MSG_wdtype, diskdev); };
option "IDE", exit;
option "ESDI", exit, action
{ msg_display (MSG_sectforward);
process_menu (MENU_yesno);
if (yesno)
doessf = "sf:";
};
option "ST506", exit, action
{ msg_display (MSG_sectforward);
process_menu (MENU_yesno);
if (yesno)
doessf = "sf:";
};
menu dlgeom, title "Choose an option";
display action { msg_display (MSG_dlgeom, diskdev, dlcyl, dlhead,
dlsec, disk->dd_cyl, disk->dd_head,
disk->dd_sec);
};
option "Use real geometry", exit, action {
dlcyl = disk->dd_cyl;
dlhead = disk->dd_head;
dlsec = disk->dd_sec;
};
option "Use disklabel geometry", exit, action {
disk->dd_cyl = dlcyl;
disk->dd_head = dlhead;
disk->dd_sec = dlsec;
};
menu editparttable, title "Choose your partition", exit;
display action { msg_display (MSG_editparttable);
disp_cur_part((struct mbr_partition *)&mbr[MBR_PARTOFF], activepart,-1);
};
option "Edit partition 0", sub menu editpart,
action { editpart = 0; };
option "Edit partition 1", sub menu editpart,
action { editpart = 1; };
option "Edit partition 2", sub menu editpart,
action { editpart = 2; };
option "Edit partition 3", sub menu editpart,
action { editpart = 3; };
option "Reselect size specification",
action { reask_sizemult(bcylsize); };
menu editpart, title "Select to change";
display action { msg_display (MSG_editpart, editpart);
disp_cur_part((struct mbr_partition *)&mbr[MBR_PARTOFF
], activepart,editpart);
msg_display_add(MSG_newline);
};
option "Kind", sub menu chooseid;
option "Start and size", action
{ char buf[40]; int start, size;
msg_prompt_add (MSG_start, NULL, buf, 40);
start = NUMSEC(atoi(buf),sizemult,dlcylsize);
if (sizemult > 1 && start < bsec)
start = bsec;
msg_prompt_add (MSG_size, NULL, buf, 40);
size = NUMSEC(atoi(buf),sizemult,dlcylsize);
if (sizemult > 1 && start == bsec)
size -= bsec;
if (start + size > bsize)
size = bsize - start;
if (size < 0) {
size = 0;
start = 0;
}
part[editpart].mbrp_start = start;
part[editpart].mbrp_size = size;
};
option "Set active", action { activepart = editpart; };
option "Partition OK", exit;
menu chooseid, title "Partition Kind?";
option "NetBSD", exit, action
{
part[editpart].mbrp_typ = 165;
};
option "DOS < 32 Meg", exit, action
{
part[editpart].mbrp_typ = 4;
};
option "DOS > 32 Meg", exit, action
{
part[editpart].mbrp_typ = 6;
};
option "unused", exit, action
{
part[editpart].mbrp_typ = 0;
};
menu cyl1024;
display action {
msg_display(MSG_cyl1024);
};
option "Re-edit both MBR and label", exit, action
{
/* XXX UGH */
extern int c1024_resp;
c1024_resp = 1;
};
option "Re-edit the label", exit, action
{
extern int c1024_resp;
c1024_resp = 2;
};
option "Use it anyway", exit, action
{
extern int c1024_resp;
c1024_resp = 3;
};
menu editfsparts, y=12, exit;
display action {
ask_sizemult(dlcylsize);
msg_display(MSG_fspart, multname);
disp_cur_fspart(-1, 1);
};
option "Change a", action { editpart = A;}, sub menu edfspart;
option "Change b", action { editpart = B;}, sub menu edfspart;
option "NetBSD partition - can't change", action {};
option "Whole disk - can't change", action {};
option "Change e", action { editpart = E;}, sub menu edfspart;
option "Change f", action { editpart = F;}, sub menu edfspart;
option "Change g", action { editpart = G;}, sub menu edfspart;
option "Change h", action { editpart = H;}, sub menu edfspart;
option "Set new allocation size", action { reask_sizemult(dlcylsize); };
menu md_distcustom, x=26, y=5, exit, title "Selection toggles inclusion";
display action { show_cur_distsets (); };
option "Kernel", action { toggle_getit (0); };
option "Base", action { toggle_getit (1); };
option "System (/etc)", action { toggle_getit (2); };
option "Compiler Tools", action { toggle_getit (3); };
option "Games", action { toggle_getit (4); };
option "Online Manual Pages", action { toggle_getit (5); };
option "Miscellaneous", action { toggle_getit (6); };
option "Text Processing Tools", action { toggle_getit (7); };
option "X11 base and clients", action { toggle_getit (8); };
option "X11 fonts", action { toggle_getit (9); };
option "X11 servers", action { toggle_getit (10); };
option "X contrib clients", action { toggle_getit (11); };
option "X11 programming", action { toggle_getit (12); };
option "X11 Misc.", action { toggle_getit (13); };

View File

@ -0,0 +1,198 @@
/* $NetBSD: menus.md.fr,v 1.1 2001/10/24 19:43:40 briggs Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
* All rights reserved.
*
* Written by Philip A. Nelson for Piermont Information Systems Inc.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed for the NetBSD Project by
* Piermont Information Systems Inc.
* 4. The name of Piermont Information Systems Inc. may not be used to endorse
* or promote products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL PIERMONT INFORMATION SYSTEMS INC. BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/* Menu definitions for sysinst. bebox version, machine dependent. */
menu fullpart, title "Faite votre choix";
option "Utilisation d'une partie du disque", exit, action {usefull = 0;};
option "Utilisation de tout le disque", exit, action {usefull = 1;};
menu wdtype, title "Choix du type de disque";
display action { msg_display (MSG_wdtype, diskdev); };
option "IDE", exit;
option "ESDI", exit, action
{ msg_display (MSG_sectforward);
process_menu (MENU_yesno);
if (yesno)
doessf = "sf:";
};
option "ST506", exit, action
{ msg_display (MSG_sectforward);
process_menu (MENU_yesno);
if (yesno)
doessf = "sf:";
};
menu dlgeom, title "Choisissez une option";
display action { msg_display (MSG_dlgeom, diskdev, dlcyl, dlhead,
dlsec, disk->dd_cyl, disk->dd_head,
disk->dd_sec);
};
option "Utilisation de la géométrie réelle", exit, action {
dlcyl = disk->dd_cyl;
dlhead = disk->dd_head;
dlsec = disk->dd_sec;
};
option "Utilisation de la géométrie du disklabel", exit, action {
disk->dd_cyl = dlcyl;
disk->dd_head = dlhead;
disk->dd_sec = dlsec;
};
menu editparttable, title "Choisissez votre partition", exit;
display action { msg_display (MSG_editparttable);
disp_cur_part((struct mbr_partition *)&mbr[MBR_PARTOFF
], activepart,-1);
};
option "Edition de la partition 0", sub menu editpart,
action { editpart = 0; };
option "Edition de la partition 1", sub menu editpart,
action { editpart = 1; };
option "Edition de la partition 2", sub menu editpart,
action { editpart = 2; };
option "Edition de la partition 3", sub menu editpart,
action { editpart = 3; };
option "Changer d'untité",
action { reask_sizemult(bcylsize); };
menu editpart, title "Changement";
display action { msg_display (MSG_editpart, editpart);
disp_cur_part((struct mbr_partition *)&mbr[MBR_PARTOFF
], activepart,editpart);
msg_display_add(MSG_newline);
};
option "du type de FS", sub menu chooseid;
option "du Début et de la taille", action
{ char buf[40]; int start, size;
msg_prompt_add (MSG_start, NULL, buf, 40);
start = NUMSEC(atoi(buf),sizemult,dlcylsize);
if (sizemult > 1 && start < bsec)
start = bsec;
msg_prompt_add (MSG_size, NULL, buf, 40);
size = NUMSEC(atoi(buf),sizemult,dlcylsize);
if (sizemult > 1 && start == bsec)
size -= bsec;
if (start + size > bsize)
size = bsize - start;
if (size < 0) {
size = 0;
start = 0;
}
part[editpart].mbrp_start = start;
part[editpart].mbrp_size = size;
};
option "Rendre la partition active", action { activepart = editpart; };
option "Partition OK", exit;
menu chooseid, title "Type de Partition?";
option "NetBSD", exit, action
{
part[editpart].mbrp_typ = 165;
};
option "DOS < 32 Meg", exit, action
{
part[editpart].mbrp_typ = 4;
};
option "DOS > 32 Meg", exit, action
{
part[editpart].mbrp_typ = 6;
};
option "unused", exit, action
{
part[editpart].mbrp_typ = 0;
};
menu cyl1024;
display action {
msg_display(MSG_cyl1024);
};
option "Rééditer le secteur de boot et le label", exit, action
{
/* XXX UGH */
extern int c1024_resp;
c1024_resp = 1;
};
option "Rééditer le label", exit, action
{
extern int c1024_resp;
c1024_resp = 2;
};
option "L'utiliser tout de même", exit, action
{
extern int c1024_resp;
c1024_resp = 3;
};
menu editfsparts, y=12, exit;
display action {
ask_sizemult(dlcylsize);
msg_display(MSG_fspart, multname);
disp_cur_fspart(-1, 1);
};
option "Changer a", action { editpart = A;}, sub menu edfspart;
option "Changer b", action { editpart = B;}, sub menu edfspart;
option "Partition de NetBSD - Changement impossible", action {};
option "Totalité du disque - Changement impossible", action {};
option "Changer e", action { editpart = E;}, sub menu edfspart;
option "Changer f", action { editpart = F;}, sub menu edfspart;
option "Changer g", action { editpart = G;}, sub menu edfspart;
option "Changer h", action { editpart = H;}, sub menu edfspart;
option "Changer d'unité", action { reask_sizemult(dlcylsize); };
menu md_distcustom, x=26, y=5, exit, title "Sélection des composants";
display action { show_cur_distsets (); };
option "Kernel", action { toggle_getit (0); };
option "Base", action { toggle_getit (1); };
option "System (/etc)", action { toggle_getit (2); };
option "Outils de développement", action { toggle_getit (3); };
option "Jeux", action { toggle_getit (4); };
option "Pages de manuel", action { toggle_getit (5); };
option "Divers", action { toggle_getit (6); };
option "Outils de manipulation de textes", action { toggle_getit (7); };
option "X11 base et clients", action { toggle_getit (8); };
option "X11 polices", action { toggle_getit (9); };
option "X11 serveurs", action { toggle_getit (10); };
option "X11 clients contribués", action { toggle_getit (11); };
option "X11 développement", action { toggle_getit (12); };
option "X11 Misc.", action { toggle_getit (13); };

View File

@ -0,0 +1,215 @@
/* $NetBSD: msg.md.en,v 1.1 2001/10/24 19:43:40 briggs Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
* All rights reserved.
*
* Written by Philip A. Nelson for Piermont Information Systems Inc.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed for the NetBSD Project by
* Piermont Information Systems Inc.
* 4. The name of Piermont Information Systems Inc. may not be used to endorse
* or promote products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL PIERMONT INFORMATION SYSTEMS INC. BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/* MD Message catalog -- english, bebox version */
message md_hello
{If you booted from a floppy, you may now remove the disk.
}
message fullpart
{We are now going to install NetBSD on the disk %s. You may
choose to install NetBSD on the entire disk, or on part of the disk.
Partial-disk installation creates a partition, or `slice', for NetBSD
in your disk's MBR partition table. Whole-disk installation is
`dangerously dedicated': it takes over the entire MBR. This WILL
overwrite all existing data and OSes on the disk. It also prohibits later
installation of multiple OSes on that disk (unless you overwrite NetBSD and
reinstall using only part of the disk).
Which would you like to do?
}
message wdtype
{What kind of disk is %s?}
message sectforward
{Does your disk do AUTOMATIC sector forwarding?}
message dlgeom
{It appears that your disk, %s, has already been labeled with a BSD
disklabel and the disklabel reports geometry that is different from
the real geometry. The two geometries are:
disklabel: %d cylinders, %d heads, %d sectors
real geometry: %d cylinders, %d heads, %d sectors
}
message diagcyl
{Some old BIOSs or old diagnostic programs may use the last cylinder of
the disk for test purposes. This should no longer be the case with
modern systems. If you have an old system and are uncertain if it
may do this, you can exclude the last cylinder of your hard disk
from use.
If you exclude the last cylinder, both the real and BIOS geometry will
be adjusted, you do not need to reenter them.
Do you wish to exclude the last cylinder?
}
/* the %s's will expand into three character strings */
message part_header
{ Total disksize %d sectors
Start(%3s) Size(%3s) End(%3s) Kind
---------- ---------- ---------- ----
}
message part_row_start_unused
{%-1d: }
message part_row_start_used
{%-1d: %-10d %-10d %-10d}
message part_row_end
{ %s\n}
message setbiosgeom
{You will be prompted for the geometry. Please enter the values you
want. The number of cylinders should be <= 1024 and the number of sectors
should be <= 63. If you have the BIOS set up to use > 1024 cylinders just
truncate that number to 1024 here; NetBSD will know about the rest of the
cylinders.
}
message confirmbiosgeom
{Please verify if the BIOS disk geometry below is correct. The value for
the number of cylinders may have been truncated to 1024. This is ok as
long as the other numbers are correct; only 1024 cylinders can be
specified in the MBR, the rest will be found in a different way by NetBSD.
If you reenter the values, make sure that the values are correct and
match those used by other systems on this disk. Values that do not match
may result in data corruption.
}
message badgeom
{The current values for your disk geometry are:
}
message realgeom
{real geom: %d cyl, %d heads, %d sec (NB: for comparison only)\n}
message biosgeom
{BIOS geom: %d cyl, %d heads, %d sec\n}
message reentergeom
{The values just entered for the geometry are not usable. Please,
reenter the geometry.
}
message ovrwrite
{Your disk currently has a non-NetBSD partition. Do you really want to
overwrite that partition with NetBSD?
}
message parttable
{The partition table on your disk currently looks like the following:
}
message editpart
{Partition %d looks like:\n\n}
message editparttable
{Edit your DOS partition table. The highlighted partition is the currently
active partition. The partition table currently looks like:
}
message reeditpart
{There are overlapping MBR partitions or there is not exactly one NetBSD
partition. You should reedit the MBR partition table.
Do you want to reedit it?
}
message nobsdpart
{There is no NetBSD partition in the MBR partition table.}
message multbsdpart
{There are multiple NetBSD partitions in the MBR partition table.
Partition %d will be the one used.}
message dofdisk
{Setting up the DOS partition table ...
}
message dobad144
{Installing the bad block table ...
}
message dobootblks
{Installing boot blocks on %s....
}
message askfsroot
{I will be asking for partition information.
First the root partition. You have %d %s left on your disk.
Root partition size? }
message askfsswap
{
Next the swap partition. You have %d %s left on your disk.
Swap partition size? }
message otherparts
{You still have some space remaining unallocated on your disk. Please
give sizes and mount points for the following partitions.
}
message askfspart
{The next partition is /dev/%s%c. You have %d %s left on your disk.
Partition size? }
message cyl1024
{ The disklabel (set of partitions) you specified has a root partition that
ends beyond the 1024 BIOS cylinder boundary. To be sure that the system
can be booted at all times, the entire root partition must lie below that
limit. You can either: }
message wmbrfail
{Rewrite of MBR failed. I can't continue.}

View File

@ -0,0 +1,232 @@
/* $NetBSD: msg.md.fr,v 1.1 2001/10/24 19:43:41 briggs Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
* All rights reserved.
*
* Written by Philip A. Nelson for Piermont Information Systems Inc.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed for the NetBSD Project by
* Piermont Information Systems Inc.
* 4. The name of Piermont Information Systems Inc. may not be used to endorse
* or promote products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL PIERMONT INFORMATION SYSTEMS INC. BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/* MD Message catalog -- french, bebox version */
message md_hello
{Si vous avez démarré sur une disquette, vous pouvez maintenant la retirer.
}
message fullpart
{Nous allons maintenant installer NetBSD sur votre disque %s. Vous devez
choisir si vous voulez installer NetBSD sur la totalité du disque ou seulement
sur une partie de celui-ci.
Une installation sur une partie du disque crée une partition, ou `slice', pour
NetBSD dans le secteur de démarage (Master Boot Record, alias MBR) de votre
disque. Une installation sur la totalité du disque est `dangereusement
dédiée' : elle réinitialise complétement le MBR, ce qui efface tout système
d'exploitation ou données existants sur le disque. Cela rend également
impossible l'installation ultérieure d'un deuxième système d'exploitation,
sauf si vous reinstallez complètement NetBSD en utilisant uniquement une
partie du disque.
Que désirez vous faire ?
}
message wdtype
{Quel type de disque est %s?}
message sectforward
{Est ce que votre disque fait AUTOMATIQUEMENT se suivre les secteurs ?}
message dlgeom
{Votre disque a déjà un label BSD. Ce label montre une géométrie différente
de la géométrie réelle du disque. Les deux géométrie sont :
disklabel: %d cylindres, %d têtes, %d secteurs
géom réelle: %d cylindres, %d têtes, %d secteurs
}
message nobiosgeom
{Votre disque n'a pas de secteur de démarrage (Master Boot Record, alias MBR)
valide. Ce programme lit la géométrie fictive du BIOS en
lisant le secteur de démarrage, donc la géometrie du BIOS n'a pu etre
déterminée ici. Les choix possibles sont :
* Arrêter l'installation, pour pouvoir initialiser le secteur de
démarrage depuis un autre système d'exploitation, ou lire la
géometrie du BIOS dans la configuration du BIOS.
* Entrer la géométrie fictive, et sysinst initialisera le secteur
de démarrage.
ATTENTION : Entrer une nouvelle géométrie entraîne l'initialisation de votre
secteur de démarrage, et la supression d'un eventuel programme de
démarrage que vous auriez pu installer.
}
message diagcyl
{Certains vieux BIOS ou programmes de diagnostics peuvent utiliser le dernier
cylindre pour des tests. Cela ne devrait plus etre le cas avec des systèmes
modernes. Si vous utilisez un vieux système, ou que vous n'etes pas certains
s'il peut faire cela, vous pouvez exlure le dernier cylindre.
Si vous excluez le dernier cylindre, les géomotries du BIOS et réelles seront
corrigées, vous n'avez pas besoin de les entrer à nouveau.
Voulez-vous exclure le dernier cylindre ?
}
/* the %s's will expand into three character strings */
message part_header
{ Début(%3s) Taille(%3s) Fin(%3s) Type
---------- ----------- ---------- ----
}
message part_row_start_unused
{%-1d: }
message part_row_start_used
{%-1d: %-10d %-11d %-10d}
message part_row_end
{ %s\n}
message setbiosgeom
{On va vous demander la géométrie. SVP entrer les valeur que vous désirez.
Rappelez vous que le nombre de cylindre doit être <= 1023 et que le nombre
de secteur doit être <=63. Si votre BIOS est configuré avec plus de 1024
cylindre, tronquez ce nombre à 1024 ici, NetBSD saura utiliser les cylindres
restant.
}
message confirmbiosgeom
{SVP vérifiez que la géometrie du BIOS ci-dessous est correcte. Le nombre
de cylindre à pu etre tronquée à 1024. Ce n'est pas un problème du moment
que les autres paramètres sont corrects. Seulement 1024 cuylindres peuvent
etre specifiés dans le secteur de boot, le reste sera trouvé d'une manière
différente par NetBSD.
Si vous réentrez ces valeurs, vérifiez qu'elles sont correctes et
correspondent à celles utilisées par d'autre systèmes sur ce disque. Des
valeurs différentes peuvent conduire à des pertes de données.
}
message badgeom
{Les valeurs actuelles de la géométrie de votre disque sont :
}
message realgeom
{ géom réelle: %d cylindres, %d têtes, %d secteurs (pour information)\n}
message biosgeom
{ géom fdisk: %d cylindres, %d têtes, %d secteurs \n}
message reentergeom
{La géométrie que vous venez de spécifier n'est pas utilisable. SVP entrez
de nouveau la géométrie.
}
message ovrwrite
{Votre disque a actuellement une partition autre que NetBSD. Voulez vous
vraiment l'écraser par une partition NetBSD ?
}
message parttable
{La table des partitions de votre disque est :
}
message editpart
{La partition %d ressemble à:\n\n}
message editparttable
{Editez votre table de partition DOS. La partition en surbrillance est
actuellement active. La table des partitions est :
}
message reeditpart
{Il y a des partitions BIOS qui se recouvrent ou bien vous n'avez pas
exactement une partition NetBSD. Vous devez éditer de nouveau la table des
partitions.
Voulez vous la rééditer ?
}
message nobsdpart
{Il n'y a pas de partition NetBSD dans la table des partitions du secteur de
boot.}
message multbsdpart
{Il y a plusieurs partition NetBSD dans la table des partitions du secteur de
boot.
La partition %d sera utilisée.}
message dofdisk
{Configuration de la table des partition DOS ...
}
message dobad144
{Installation de la table des bad block
}
message dobootblks
{Installation des block de démarrage sur %s ...
}
message askfsroot
{Je vais vous demander la taille et le point de montage de quelque partitions.
Et tout d'abord la partition racine. Il vous reste %d %s de libre sur votre
disque.
Taille de la partition racine ? }
message askfsswap
{
Et maintenant la taille de swap. Il vous reste %d %s de libre sur votre disque.
Taille du swap ? }
message otherparts
{Il vous reste de l'espace libre non alloué sur votre disque. SVP donnez la taille et le point de " montage " des partitions suivantes.
}
message askfspart
{La partition suivante est /dev/%s%c . Il vous reste %d %s de libre sur votre
disque.
Taille de la partition ? }
message cyl1024
{ Le label (liste des partitions) que vous avez entré a une partition racine
qui se termine après la limite du BIOS de 1024 cylindres. pour être sur que
le système puisse etre toujours démaré, cette partition doit etre entièrement
en dessous de cette limite. Vous pouvez: }