Commit Graph

129 Commits

Author SHA1 Message Date
garbled
85af130714 Rather big update to sysinst, in order to get it working on the prep port.
1) Add an md_post_extract() function.  This function is called after
extracting the sets, and allows the arch to do something at that time.
In the case of prep, it is much easier to install the bootcode after all
the sets are extracted, so we do it in md_post_extract().  Added empty
md_post_extract() functions to all other arches so they compile.

2) Add md_mbr_use_wholedisk() and md_check_mbr().  In edit_mbr() I have
split off the code that uses the whole disk for NetBSD, into the
mbr_use_wholedisk() function.  On most ports that use mbr.c, I made
md_mbr_use_wholedisk() just call that and return.  On prep we create the
magical prep boot partition here.  The md_check_mbr() function allows the
arch to add additional checks after the user had manually edited the MBR
to make sure the choices he made allow NetBSD to function.  Added a dummy
routine to all mbr.c using arches.

3) Added code to bsdlabel.c to create a partition of type boot if
PART_BOOT is defined, but BOOT_SIZE is not defined.  Also added two more
globals "bootsize" and "bootstart" which must be seeded in order to do
so.  This is done on prep in md_check_mbr().

4) Added MBR_PTYPE_PREP to the list of MBR partitions.

5) Made the prep port actually install sanely.  It now creates a prep
boot partition, labels it correctly, installs all the sets, and then runs
mkbootimage and dd's the bootimage into the prep partition.  The result
is a prep installer that creates a bootable NetBSD installation
automatically.

6) Edited the prep menus and messages files to add new labels.  In the
case of the translated files, I just added the words in english for
someone to translate later.

I tried to xcompile a few arches to make sure I didn't break anything,
but I could have missed something.  Please let me know if I have broken
your arch in any way.  I'll watch the autobuilds for the next few days
too. For all ports other than prep there should be no functional changes
at all.
2006-04-05 16:55:01 +00:00
dsl
b051d89585 Make floppy install messages less confusing (maybe).
Make floppy file system type settable - it depends on the system you are
using to write the split sets, not the target.
2006-02-26 10:25:52 +00:00
dsl
ac97411677 Use a menu for 'install from floppy' questions.
Ask whether the user wants to delete the fetched files (ftp and floppy) after
install.  Delete after sucessful install of each file.
Kill bufferred tty input in a couple of places when typeahead will be wrong.
Code added to run.c to do a 'cd' in the child, unused (so far).
2006-02-25 20:21:00 +00:00
dsl
cd974d281d target_realpath() is only used by the code that updates libraries from
a.out to elf - so move it into aout2elf.c
I'm not even sure this code is important at all any more.
2006-02-25 13:29:34 +00:00
dsl
afd41ad77a Show the number of sets installed and the next set above the menu that
asks you where to load stuff from.
Initialise stuff so that 'install default set of sets' works.
Fix install loop, removing infinite loop if/when first kernel not selected.
2006-01-15 20:41:00 +00:00
dsl
9fc0a7f722 Rework the installation loop so that it is possible to change the source
of the sets after an error.
A side effect is that it now does fetch-install-fetch-install..., not
fetch-...-fetch-install-...install.
The set selection code now uses a byte per set (not a bit-pattern) removing
the restriction of 32 sets, and allowing a per set status display (TBC).
Also TBC is deleting sets from /usr/INSTALL.
However I believe it works...
2006-01-12 22:02:44 +00:00
dsl
630725bdbc Put 'Delete ?' (not "yes or no") in box when we ask whether the user
want to keep or delete the dist files.
Stop the "type enter to continue" if the rmdir fails - may not be empty.
Report an error if the chroot() (for RUN_CHROOT) fails.
fflush log and script files before writing to them from a child.
2005-02-26 17:40:49 +00:00
dsl
d53c0d596e Put /bin/sh at top of list for root's shell.
Remove a global data item as well.
2005-02-20 20:54:52 +00:00
dsl
9146a4af0b Default to using 2k fragments (16k blocks) on filesystems that are >1GB.
Matches the defaults advertised in the newfs(8).
Perry keeps on asking me to do this :-)
2005-01-20 21:59:35 +00:00
dsl
7d6407147b Add support for fetching using http (by specifying http URL to ftp)
Remove a 'Press <enter> to continue' message that was accidently left
in by a previous commit.
Fixes PR/18555 (and a recent discussion on a mailing list)
2004-11-11 21:24:40 +00:00
dsl
29306cabe7 Default to input in MB for all architectures (MB are cylinder aligned).
Move info about cylinders to the 'ask for units' menu.
  (translations need checking, done by cutting sentences)
Stop i386 always asking for units.
Use BIOS cylinders for MBR and disk cylinders for the disklabel.
  (code intended to do this, but got it wrong...)
Mark some menus as 'sub menu' or MC_SUBMENU so that the screen underneath
  is saved.
Add GENERIC.MPACPI to i386 menu.
2004-08-14 16:06:36 +00:00
dsl
da414ff103 Remove the globals ramsize and rammb, the former was only ever used inside
a single function, the latter is now the return value of get_ramsize().
Changed all uses of rammb to get_ramsize().
Used the 64bit HW_PHYSMEM64 so silly things don't happen if the memory size
approaches (or even exceeds) 4GB.
2004-07-17 10:55:03 +00:00
dsl
85fdb1645f Nuke reask_sizemult() - it isn't used any more 2004-07-15 21:06:45 +00:00
dsl
a9372a42f1 Add a menu (right at the start) to ask for the keyboard type.
Save the result in /etc/wscons.conf at the end of the install/upgrade.
Currently only builds for i386 - change arch/*/Makefile and add the
extra messages (though they could go into the msg.mi.* files).
Needs the 'Keyboard type' message translated in to German, French and polish.
Maybe the keyboard type names could be less cryptic...
2004-06-12 19:18:24 +00:00
christos
2fe9365746 Get rid of the EXTERN/INIT mess; fix so that we can process this with xstr(1).
Not worth processing though, since on the i386 we only save ~3K.
2004-06-06 06:06:59 +00:00
dsl
3a2118e931 A load of usability fixes mainly to network installs.
I've made the error retry loops go back as far as the input menus.
Split all the pathname inputs into 2 pieces (base directory and set directory).
Reduced the size of some fixed strings.
Stopped the install aborting if ftp can't find a set (eg the X ones).
The French and Polish transations don't differenciate between Base_dir and
Set_dir - but that can be fixed later.
2004-06-05 21:18:59 +00:00
dsl
568270beb4 Parse a disk name of "raid:no_mbr" to mean "raid" but without any mbr
setup (on i386).  Allows sysinst to install to an existing RAID1 volume.
2004-05-15 21:53:29 +00:00
dsl
5d2ed42cb6 Throw out all the crap to do with etc.old, instead install etc/tgz
into /.sysinst and use /etc/postinstall to do the merge.
2004-04-18 21:34:56 +00:00
dsl
ad184b340b Kill emptylabel() is doesn't DTRT since it doesn't know the size of the array.
Fixes breakage caused by copying oldlabel to bsdlabel for update.
Don't look for 'last mounted' in first alternate superblock.
2004-03-26 19:55:13 +00:00
lukem
1d92dd6bcf Add support for "xetc". 2004-01-29 08:48:23 +00:00
lukem
c434d47afe Remove references to xcontrib and xmisc now that they've been merged
into xbase.
2004-01-17 05:30:01 +00:00
christos
9f69d1d028 Add an argument to cp_within_target that indicates if the file is optional
or really should be there. Use that for files that are not necessarily
present.
2003-12-28 05:30:47 +00:00
dsl
31d8f670de - Change enum for partition numbers from [A..Z] to PART_[A..P] (16 is enough)
- Rename run_prog() to run_program() and remove the 'errmsg' argument (almost
  never used).
- Be consistent about #define<space> in defs.h
- Allow BSDFFS partitions to be FFSv1 or FFSv2 (fixes PR install/23547)
- i386: install correct bootblocks for root filesystem type.
- Do 'fsck -p' before all mounts (but never a full fsck), rename fsck_xxx()
  to mount_xxx() and remove some wrapper functions.
- Allow root to be an APPLEUFS partition - and allow them to be newfsed,
  should fix PR install/23198
- Redo fstab processing for upgrade to avoid large static data items and
  memory leaks.  Change walk() to abort on user defined error.
  (the fstab stuff really needs more work though...)
- i386: 'Warp' cursor to alternate option when selecting console/bootblocks,
  should fix PR port-i386/23546.
- Allow MENU_ok and MENU_yesno to take user defined title.
- Ensure that mountpoint not defined for swap (and similar issues) when
  editing netbsd label.
- Tweaks to error handling in run_program(), allow user to say that errors
  are expected or that the display shouldn't be cleared before returning.
- Remove some old code that has been festering under #if 0
2003-11-30 14:36:43 +00:00
sekiya
1cc0ebce1f A few sysinst fixes:
* use cd0a rather than cd0[cd] as the CDROM installation device.
	  This fixes problems with platforms that install from iso9660 images
	  encapsulated in a partition, and should not affect platforms that
	  don't.
	* add RUN_PROGRESS to the run_prog() flags for ftp installs.

Okay'ed by David Laight.
2003-11-15 12:53:34 +00:00
dsl
7ef7a3f227 Checkpoint a load of changes - seems to work ok still.
- rework run_prog() so that the program name (etc) is usually displayed if
  the program generates any output, or terminates with an error.
  Allow arguments to included in single quotes.
  Try to collect console output so it doesn't interfere with curses.
- Add a '*' to the cylinder count if non-integral number of cylinders
  (on disklabel editor)
- Only show partition type for unused partitions.
- Show size including unused space on '+' partition, remove a..z since
  the don't relate to partition IDs (netbsd partition sizes)
- Fix deleting of 'user' partitions - killed size of next ptn.
- Don't default a swap partition is the disk already has one.
- Fix deleting of extended MBR partitions - changed size of ptn 2.
- Show error message if user tries something illegal in mbr editor.
- Default to old diskname (actually disk type - dunno why!)
- Use MI enable_rc_conf() to set RC_CONFIGURED=YES, use a single sed
  command instead of a raft of code playing with files etc.
- Float some menus to just below header text, saves counting and lets
  language variants have different height headers (use y=-1)
- Track whether anything is mounted on /mnt2 better.
- Put more texts into message file.
- Change english prose texts to be more correct.
- Stop french and polish versions core dumping if ptn start/size changed.
- Fix processing logic for saving /etc (action is still borked)
- Do tail-end setup if any sets (eg X) can't be found (but not if you give
  in (yet)).
2003-10-19 20:17:31 +00:00
dsl
98b66fc660 Use new kern.root_partition sysctl to find out whether we are installing
over the current root (ie the one we are booted from).
Remove all the stuff that tried to find this out by other means.
A few other message changes.
2003-09-27 10:47:17 +00:00
dsl
b2fa78b58e Let noexec, nodev and nosuid be written to /ets fstab entries
Always use 1023 cylinders in mbr for large disks
2003-08-10 14:51:48 +00:00
dsl
fe536754c3 Allow user to shoot themselves in the foot by specifing a non-standard
'average bytes per inode' for each partition.
Fixes PR install/8509
2003-08-09 21:36:26 +00:00
dsl
117888d14f When writing /etc/fstab:
add support for setting mount options of async, noatime, nodevmtine and softdep.
add noauto if 'mount' was not requested.
add entry for /proc (with noauto)
Display fragment size and block size on the correct line.
Ask for numeric fragment size (not # fragments/block).
Show one unused partition when editing disklabel.
Zap all fields when a partition is made FS_UNSED.
Tweak some menu texts (a space at the end of a line causes a line break!).
Simplify code that displays output from commands - curses is requied to not DTRT
with CR/LF sequences, I need to revert libcurses :-(
2003-08-05 13:35:26 +00:00
salo
8d1781e39d netbsd.org->NetBSD.org 2003-07-26 17:06:22 +00:00
dsl
7f5beafa6b Sprinkle a load of consts, and change a few variable names.
Now compiles with WARNS=3.
2003-07-25 08:26:21 +00:00
abs
ef8e75ce98 Make net_namesvr6 extern again to fix compilation if INET6 is defined. 2003-07-19 22:07:36 +00:00
dsl
6e575ea980 Network info has gone to net.c and is now static.
Stuff to put /etc back in upgrade aborted.
2003-07-18 09:44:20 +00:00
dsl
e64fcd4452 Use a menu when asking for the install disk (fixes PR install/20121).
Make disk_desc[], disk and numdisks local to get_disks (instead of globals).
Fix a little fallout from the above.
A bit of mbr.c was missing #ifdef BOOTSEL...
2003-07-11 15:28:58 +00:00
dsl
6da321c1aa Sort out (and remember) the disk partition we will install into.
This should stop the i386 code splatting all over the start of the disk
during upgrade.
Upgrade will still use partition 'a' (unless you loop through the install
far enough first!)
2003-07-08 17:38:54 +00:00
dsl
0e919832bd Another pass of the rototiller. Mainly:
1) New MBR editor
2) Hierarchic timezone menu
2003-07-07 12:30:19 +00:00
dsl
16a2d1e961 Add run-time selection of installation language.
Make 'doingwhat' an argument to find_disks() instead of a global.
2003-06-27 22:20:14 +00:00
dsl
9ef6b561d7 Add a -D (debug) option for testing.
Ignore inability to remove swap if -D specified.
Select disk before sets (but label after)
Let mac68k sysinst run on i386.
2003-06-25 15:45:21 +00:00
dsl
430c90c3f6 Correct check for active swap on install disk.
Use swapctl() for all swap operations.
Remove md_upgrade_mbrtype() from arc and hpcmips ports.
(I haven't finalised what I'm doing about type 165 partitions, but the
existing code is borked.)
2003-06-16 10:42:47 +00:00
dsl
17ae477780 Implement a limit on the size of / so that its guaranteed readable by the boot code.
Remove pointless 'len' parameter from read_mbr and write_mbr.
Make read_mbr initialise mbr if it can't be read (delete MD code).
Make i386 always ask at least once about the bootcode.
Move LIB_MOVE and LIB_COUNT from md.h to aout2elf.c
2003-06-14 12:58:45 +00:00
dsl
bc119f42a4 Remove all references to minfsdmb and STDNEEDMB - neither are used any more. 2003-06-13 11:57:28 +00:00
dsl
88e7a0c7dc Report actual minimum size of partitions (instead of a number that is
4 times system memory). (These numbers need moving to a different menu still.)
Remove size of /usr from default sized / when /usr created.
Shrink swap in order to get partitions into available disk space.
Add twice ram size to / if space available (for system dumps).
Keep all but last partition cylinder aligned when the disk isn't a whole
number of cylinders.
2003-06-13 11:45:49 +00:00
dsl
84bdf1950e kernel names mixed up on i386/amd64 port
Default to TINY, LAPTOP or PS2 if running from such a kernel.
Do wscons stuff unless we installed a TINT kernel (not if running one)
2003-06-12 12:41:55 +00:00
dsl
608254d0b8 rototil of the set selection menu
I've also made the set selection happen first.  This lets me test it!
also measn the selected sets could be used in the disk partition code.
Removed the 'with X' disk layout question (now too late to change the sets).
2003-06-11 21:35:35 +00:00
dsl
3316b2a3d8 Use dynamic menu for final editing of partition stable 2003-06-10 17:47:15 +00:00
dsl
44fa8ce69d Use dynamic menu to select partition to edit 2003-06-09 19:06:48 +00:00
dsl
99d1eb21d4 Add (back) support for mfs /tmp
Fix menu size so that user defined partitions can be allocated instead of
standard ones (need > MAXPARTITIONS entries in menu).
Make partition size info static - with a view to including it in a longer loop.
2003-06-06 21:37:13 +00:00
dsl
456a798f32 Remove a cpuple of unused buffers 2003-06-06 17:05:02 +00:00
dsl
32fda96392 Remove a load of messages that are no longer used.
Make the French and Polish versions compile (seems I didn't fix it last time)
2003-06-06 14:31:22 +00:00
dsl
d19795892c A rototil of the partition size requesting code. 2003-06-04 20:05:12 +00:00