partition handling has been completely rewritten to address serious data
loss issues with Mac HFS partitions, and the a.out -> ELF upgrade has
been addressed. From Bob Nestor; part 1 of 2 of a fix for PR 15528.
For now, we keep the GENERIC/GENERIC_INDY sets, but make the labels a
bit clearer as to their purposes.
XXX: Still need code to install bootloader into volhdr; need either to
integrate into MI installboot or fix up sgivol (I have changes from Scott
for sgivol, just haven't folded them in yet).
This was tested using a custom INSTALL kernel. The current one is >4Mb
which the cats firmware can't currently boot. We need to decide what
needs to be removed from INSTALL.
on the ramdisk image then ask which set of bootblocks to install (normal or
serial). If it doesn't exist, just install the normal ones. (small/tiny
images).
and some sparc64 fixes. details:
- new scripting_{,v}fprintf() that also write to the script log (if open).
- support of creation of LFS filesystems
- standard installs now allow one to choose which file systems to create,
out of the list of /usr, /var, /home, MFS /tmp, and swap. a / is always
created, but the rest all optional. [*]
- new disklabel method: use existing. this requires one to fill in the
mount points (and having at least a "/" is enforced).
- preservation of existing filesystems (at install) is supported.
- rewrote most of make_fstab(): the entire thing is generated from the
bsdlabel now, rather than hard coding / to 'a' and swap to 'b'. create
MFS /tmp if requested.
- if IPv6 support isn't present, don't display any ipv6 messages.
- better rc.conf support
- sparc & sparc64 default to "cylinders" now.
- choosing "standard" instead of "standard with X" de-selects the X pkgs
by default.
- sparc64: don't install bootblocks until we have a complete system, avoids
booting with no /dev/console.
- sparc64: bump STDNEEDMB, it is way low.
[*] i have added default values for DEFVARSIZE & DEFUSRSIZE (this is used
only if /usr and /home are selected) to each port, based on STDNEEDMB. as
such, my guesses might be wrong so port maintainers should look at these.
instruction.
Create md_hello message and move that message to it.
Port-maintainers: please reflect the reality of your port.
Someone who can write french: please correct *.fr catalogue.
you really should not be changing the geometry values, unless they
look totally ridiculous due to some BIOS bug.
Disable manual entering of initial partition label values when doing
a custom label. The step was redundant. Just go to the label edit
directly, leaving everything but the c and d partitions empty.
seperate booleans. Add flags to run as a plain 'system()' command,
fullscreen (but on a pty), and chrooted, and implement their
functionality. Add a bit of TIOCPKT handling code to handle
programs messing with term settings better.
* Ask to set the root password at the end of an install.
* Remove a few unneeded comments.
* Sprinkle some touchwin() calls here and there to make the output cleaner.
They shouldn't really be needed, but even normal usage (no syslog
messages) even left the screen messy sometimes.
* Change some messages around that were apparently swapped by accident and
thus caused confusion.
by checking uname, or the BOOTMODEL environment var), and set
the kernel setname accordingly for some bootmodels (tiny and laptop),
to install GENERIC_TINY and GENERIC_LAPTOP respectively. There's
no sense in installing plain GENERIC, especially on "tiny" systems;
it may not even make it far enough to add swapspace on 4M machines.
* Make sure to always install bootcode into the MBR (unless the user
explicitly tells us not to). Should fix PR#8887, PR#9093, PR#9999
enabling and disabling swap. Enabling swap is currently only
done by the i386 port on systems with <= 8M of physical memory.
If a user re-enters the install procedure through the main menu,
and the target disk has an active swap partition, try to disable it,
warning the user that this might lead to 'out of swap' problems,
making a restart necessary. This should not happen very often.
Partly based on comments by Simon Burge.
'rc_configured' is still changed via sed's s///, wscons=yes is appended
via "echo >>".
* make target-routines (target_expand(), and whatnot) work if no root
disk was selected. With this, sysinst can now be used on a "normal"
system to adjust the system's timezone. Use the entry in the "Utilities"
menu for that.
Both changes were tested by a full i386 installation.
overwrite anything important. (The moving down hides some elements
of the selection box, but we can scroll).
Took some digging to find out that aparently all selection boxes default
to a upper row of 12 and some more digging on how to change it.
orts. Since port specific information is in appropriate arch/.../md.h
bsddisklabel.c is currently #included by arch/.../md.c.
I'm not totally happy about this, but my concience is somewhat salved by the
overall reduction in breakage.
Initially only pmax, sparc, vax and x68k are using bsddisklabel.c.
While I'm here adjust defs.h for more than eight partitions in a generic
fashion.
partitions under any circumstances, allow no swap, do not *overwrite* /usr
when listing additional partitions, and try to abstract at least most of the
magic numbers to #defines at the top.
Also sync up as much as possible to make this easier in future.
Still need to attack the other arch's md.c files.
Fixed PR#7741
If the default swap is smaller than the remaining disk, truncate to the
available space.
Set rc_configured to YES in md_cleanup_install()
screen as XXX. Where they were not followed by wclear(stdscr), add
wclear(stdscr). Somebody was let out without adult supervision. If i
were more adventurous, i'd remove the bits that output 'CL', but i'm not
gonna go there right now.
read/write that much. Previously, too much was written back to
disk (although it didn't do any harm because of the sequence
of execution).
Also, upgrade the MBR type from 386bsd -> NetBSD if needed during
an upgrade operation.
Check if there's no active partition after MBR editing.
Ask for own MBR to be installed if we're booting from out of CHS range.
Ask for bootselector to be installed if > 1 OS, and configure it.
- in run_prog(), do an explicit wclear(stdscr); wrefresh(stdscr);
before launching subwindows. This seems to solve all the display
problems associated with run_prog().
enter partitions offet and size. The user can chose unit independantly of
the unit used for display ('M'/'c'/'s'). These functions do the proper
bound checks and alignement/roudups. Used in the edfspart menu and
i386 md_make_bsd_partitions() (other ports should do the change as
well).
- now that getpartsize() does the rigth thing, kill the swapadj hack (which was
buggy anyway).
- in i386 md_make_bsd_partitions(), don't propose defaults that don't fit on
the disk. If the disk is too small, fallback to custom instead.
- fix a bug in mbr.c, where the partition flags would not have always been
reset. sysinst created me a MBR with 2 active partition. The boot code
doesn't like it :)
- added a message for eventual mount failures.
- killed donewfs and extracting messages, as we run the commands in a
subwindow these messages just flashed on the screen.
- Changes a few exit(1) to return(1), to give the user a second chance.
- added msg_clear() or wclear(stdscr) in a place or two, to make
display a bit nicer.
- in run_cmd(), if the command succeeded, don't wait for the user to
press enter.
- Make all the functions called from do_install() return an error code,
so that we can abort install if something went wrong.
- Add a 'errstr' argument to run_prog(), which if not NULL is displayed
with msg_printf() and followed by process_menu(MENU_ok) if the command fail.
Used to warn the user that the current action is aborted.
- in a few places use msg_display() or msg_printf() rather than printf.
It seems that stdout/stderr are not always pointing to the active curses
window.
- garbage-collecd unused messages, add a few new one (error handling).
XXX only tested on i386. Other md parts should be tested as well.
* Use structures, not 2-dimensional arrays..
* Use the DIOCGDEFLABEL ioctl to get the disk information,
to avoid confusion with (older) labels.
* Don't ever call fdisk for partitioning. This was the
source of much confusion.
* For the i386, use the BIOS geometry information passed by
the bootblocks.
Lots of things left to do, but it's a start.
commandlines for all tar operations. (work supplied by Matt Green)
2) Update arch/*/md.c to deal with new sysinst/run.c. Special case
anything that needs to do a redirect or a pipe.
3) #if 0 some unused code in target.c. This code will need to be updated,
or special cased with do_system.
Big thank you to Matt for all his work on this.
Scripting and logging functionality for sysinst.
Child programs are run in a "display window" so you can actually see what
they did before the screen flashes back and you loose it all.
Lots of curses fixups. Removed nasty endwins that mangled the tty upon
rentry.
Change the yes/no box to accept Y or N, and not require cursor motion to
decide one or the other.
Perform curses redraws when doing things that could cause the kernel to
spew printfs onto your screen.
just what the hell sysinst is asking for. (Why do we include the
`dangerously dedicated at all?)
Fix dangerous UI botch: make `normal' install the default, not `whole disk'.
i386) so that the partition menu items match the selector letters).
XXX: All the .fr files need checking - look for the comment
/* XXX: ENGLISH -> FRENCH */