Commit Graph

12 Commits

Author SHA1 Message Date
jonathan d7afdff3d0 * Add main menu option to reinstall sets or install additional sets.
(like upgrade but without trying to save etc.

* Add option to setls0urce menu to look in an already-mounted (local)
  directory.  Change `local fs' option to say umounted local fs.

* Change extract_file() to check that a tarball actually exists
  and give an explicit non-curses warning if it doesn't. (see above.)

* GNU tar returns a successful status if its gunzip child dies.
  Add short sleep() after tar commands in case of undetected errors.

* Change set-source selection code (except FTP, floppy) to check
  that the mandatory set files (base.tgz, etc.tgz) exist
  in the selected directory.  If they don't, warn the user and
  prompt the user to  change the selected directory.
  Give the user the option to explicitly continue even if
  base.tgz or etc.tgz not found, just in case.

* Change extract_file() to keep count of set unpacks that succeeded
  or failed. (Unreliable, given the broken return status of gnu tar.)
  Warn the user if there are errors and abort the installation/upgrade
  if we find any.  Does at least catch Ctrl-C interrupts of unpacking.

* Make unwind_mounts() signal-safe.

* Sense of target_verify_* is broken. Replace with predicates that
  return 1 iff the file or directory exists.

* Fix upgrade tests for existing etc.old (see above) before saving
  target /etc as /etc.old.

* Other detail fixes.
1997-12-05 14:00:59 +00:00
jonathan b3da2a1b88 Fix target prefixing to handle both root-in-swap (traditional miniroot)
and current-root-is-target-root (pmax diskimage.

 * Add code to check disk names (e.g., "sd0") against the current
   kern.root_device  sysctl (whic  does *not* include a partition).

 * Add new function must_mount_root():
   check to see if it's the same device as the root.  If not,
   the current and target root partitions cannot overlap.
   If they do, do statfs() on "/", and return 1 iff we get back
   "root_device" as the mounted-on filesystem, otherwise zero.

* Call must_mount_root() right after the user specifies a disk as
  install/upgrade target, and  if it returns 1, print a message asking
  them to mount root, and abort.

*  Use statfs("/")  mounted_from string to check if a disk partition
    (e.g., "sd0a") matches the current root.
1997-11-09 12:47:06 +00:00
jonathan 121b2869f7 * Add merge_etc() in upgrade.c. Copies /etc.old/fstab to /etc/fstab
as last step of upgrade, so /etc/fstab exists after reboot.

*  util.c: correct sense of test in sanity-check helper check_for().
   Change variable name to `found' for readability.
1997-11-06 09:02:36 +00:00
jonathan 77221dcc6a * Add code to run `test(1)' on target-root pathnames.
* Change find_disks: after mouting target root, check for
  /etc/fstab in target, and abort upgrade if not found.

* Change upgrade to check if the target root has /etc.old
  before renaming the target /etc -> /etc.old.  If found, abort.
  (may indicates a failed upgrade.)

*  Add save_etc(). saves target /etc as /etc.old, then copies back
   config files we might want during upgrade, in case target is current root.

* Fix logic that fscks and mounts disks. Use subroutines to
  fsck with a warning message and ok() on continue.  Same for doing mounts.

* Fix bug in extract_dist(). Do NOT do target prefixing on the dist_dir,
  since we didn't do target prefixing when mounting it.
  (At least, NFS does't.)

* Add function to  sanity-check target root.
   Call after upgrade/install  is done.

* Change MSG_realdir to print the strerror() of any errors.
  Change target_chdir() to check if chdir() returns -1 and return errno.

* Make sure /dev exists before cd'ing there and running MAKEDEV.

* Use target_fopen() and fprintf() to write network state to disk,
  to avoid inadvertent shell escapes.

* Fix silly typo in append_to_target_file. (maybe add shell quotes?)
1997-11-05 07:28:20 +00:00
jonathan 409430d612 * Get current root device via sysctl(). Use it in target prefixing code.
Add more #ifdef DEBUG to target-prefixing.
* Fix niggle in creating a new resolv.conf: ctime()'s result ends in '\n',
  so don't include one after the %s for the timestamp.
* Change upgrade: add the same ``disk stuff done'' message used in install,
  so the user knows what's going to happen.
  (is a more tailored message useful?)
1997-11-03 09:47:00 +00:00
jonathan 17aa1054d7 Add more target_wrapper functions, to do
* renames of files from one pathname within the  target to another
    (e.g., mv_within_target_or_die("/etc", "/etc.old");
  *  check to see  if a partition name like "sd0a" is the current root
  *  Duplicate a file from the current root into the target root
     (for copying /netbsd from RAMdisk into the  target).
     A no-op if the root is the install target).
Start using these where appropriate.

Change net.c to avoid losing any information when updating network
config files: where possible, do appends to files that might have more
info than we got from the user (e.g., /etc/hosts.)

Where possible, add comment saying file was created/modified by sysinst.
1997-11-02 23:43:11 +00:00
jonathan 326ca1c813 Snip out common code that fetches and unpack setss in both upgrade()
and install().  Put it into a new function ``get_and_unpack_sets()''.
Fixes a typo (/sbin/umoount) in the upgrade() version.
1997-11-02 09:41:57 +00:00
phil 345ae6924d Recover more bits lost in my earlier blunder. Get update working.
Other minor tweeks.
1997-10-22 15:28:33 +00:00
phil 39725806db Floppy and cdrom distribution load. Other tweeks to improve installation
and upgrade.
1997-10-20 06:13:25 +00:00
phil 15274f8880 Update to current state. Install and upgrade nearly finished. Disk
discovery and geometry no longer use /kern/msgbuf.
1997-10-15 04:35:17 +00:00
phil 9f2b3143db Update to current state. 1997-10-07 04:01:29 +00:00
phil af1d23bed3 Import of sysinst. Not quite ready, but other ports want access for
parallel development.  i386 version about 90% complete.  pc532 version
just started, other architectures later in coordination with portmasters.

This is a curses based, menu driven installation program.

Better error checking is needed.
1997-09-26 23:02:53 +00:00