Commit Graph
208 Commits
Author SHA1 Message Date
Ed Maste a11c77b05d MFC r321226: bsdinstall: improve checksum mismatch error for snapshots
The usual case of a mismatched checksum for installer snapshots
(e.g., -CURRENT, -ALPHA*) is that a newer snapshot has been built and
the old install sets have been replaced.  Provide a specific error
message for checksum mismatches there that suggests looking for a newer
snapshot.

Submitted by:	Guangyuan Yang <[email protected]>
Sponsored by:	The FreeBSD Foundation
2017-09-14 00:41:27 +00:00
Ed Maste 099dfbfc80 MFC r323448: bsdinstall: Ignore error return from newaliases(1)
This was originally added as "exit $SUCCESS" but with nothing to set the
SUCCESS variable. Thus it became an exit with no argument, which just
exits with the status of the preceding command.

Sponsored by:	The FreeBSD Foundation
2017-09-14 00:35:27 +00:00
Ed Maste ef15b297b3 MFC r322374: bsdinstall: record DHCP config after obtaining lease
Previously we added an ifconfig_$INTERFACE line to rc.conf for each
unsuccessful DCHP attempt.

PR:		219515
Sponsored by:	The FreeBSD Foundation
2017-09-09 00:33:19 +00:00
Ed Maste 28be063237 MFC r321734: bsdinstall: default to UEFI-only boot on arm64
Sponsored by:	The FreeBSD Foundation
2017-08-08 13:44:32 +00:00
Ed Maste 74bba97485 bsdinstall: use consistent EFI configuration across platforms
MFC r320007:
- increase arm64 EFI partition to 200M, as x86
- use EFI_BOOTPART_SIZE and EFI_BOOTPART_PATH macros on x86
- increase ZFS EFI partition to 200M

MFC r320008: bsdinstall: correct comment after r320007

PR:		201898
Approved by:	re (kib)
Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
2017-06-19 03:07:00 +00:00
Allan Jude 5eb743b552 MFC: r319863
bsdinstall: Make ZFS min_auto_ashift adjustment persistent

MFC: r319864
	bsdinstall: support Auto ZFS mode for ARM64

Approved by:	re (gjb)
2017-06-15 17:44:16 +00:00
Roger Pau Monné bd32b86792 MFC r318632, r318633:
bsdinstall: mount is not needed for the ZFS install case
bsdinstall: do not use distextract in scripted mode
2017-05-29 11:37:08 +00:00
Renato Botelho 7488ea5ca6 MFC r313448:
bsdinstall: Make sure chroot filesystems are umounted after use

* DISTDIR_IS_UNIONFS is set every time BSDINSTALL_DISTDIR is mounted inside
  BSDINSTALL_CHROOT. Use this flag to decide if it needs to be umounted
* BSDINSTALL_CHROOT/dev is mounted when 'bsdinstall mount' is called, there is
  no need to mount it again when user goes to shell after installation

Reviewed by:	allanjude
Obtained from:	pfSense
MFC after:	1 week
Sponsored by:	Rubicon Communications (Netgate)
Differential Revision:	https://reviews.freebsd.org/D8573
2017-02-15 08:43:26 +00:00
Devin Teske b51bede041 MFC improvements to bsdinstall's wlanconfig module
MFC [85] revisions 309719-309720, 309901-309902, 309904-309911,
309913-309920, 309922-309924, 309926, 309928, 309930, 309932, 309934,
309937-309942, 309944-309952, 309958-309998, and 310038 (described below)

r309719: Remove unnecessary trailing backslashes
r309720: Functions in their own section
r309901: Comments
r309902: Use $( ... ) instead of `...`
r309904: Change "[ ! -z ... ]" => "[ ... ]" and "[ -z ... ]" => "[ ! ... ]"
r309905: Remove unnecessary local initializers
r309906: Consolidate locals
r309907: Replace funny block with something easy to digest
r309908: Collapse tiny if statements
r309909: Change "[ ! ... ] && ..." to "[ ... ] || ..."
r309910: Remove unnecessary quotes around number in test
r309911: Group fallbacks together
r309913: Allow $BSDINSTALL_TMPETC to contain whitespace or special chars
r309914: Add missing `-e' parameter to sed invocations
r309915: "echo | sed | sed | awk" is silly (changed to "echo | awk")
r309916: Be internally consistent (": > ..." is used elsewhere in this file)
r309917: awk(1) match() takes a regex, use /.../ to remind ourselves of this
r309918: Remove unnecessary `-n' parameter to head/tail
r309919: Whitespace
r309920: Use provided API instead of hard-coded status integers
r309922: Centralize backtitle string
r309923: There is zero harm in always passing --default-item to dialog
r309924: Always pass --default-item parameter to dialog
r309926: Change the name of a variable from $def_item_... to $default_...
r309928: Use ~ instead of match()
r309930: Use ternary operator
r309932: Remove an unnecessary "return $?" at end of function
r309934: Consolidate redirects into here documents
r309937: Whitespace (dialog options separated to minimize diffs)
r309938: Use provided API (change "dialog" to "$DIALOG")
r309939: Fix incorrect use of provided API
r309940: Reorder dialog parameters based on commonality for readability
r309941: Use provided API to centralize dialog title strings
r309942: Allow the script path to contain whitespace and special characters
r309944: Fix invalid parameter expansion (change $@ to "$@")
r309945: 1 is the default descriptor for redirects without an fd prefix
r309946: Use more succinct awk syntax
r309947: Remove unnecessary semi-colons
r309948: Remove incomplete and unnecessary creation of fd3
r309949: Utilize provided i18n strings
r309950: Whitespace
r309951: Remove an unnecessary call to f_dialog_title_restore()
r309952: Move the secondary condition into the action clause
r309958: Quote WLAN_IFACE (pedantic)
r309959: Use oft-neglected syntax "startcondition, stopcondition { ... }"
r309960: Add missing backslash
r309961: Stop repeating strings (centralize prompt string)
r309962: More efficiently make use of the exit status
r309963: Avoid non-standard options
r309964: Sort the domains
r309965: Whitespace alignment
r309966: Sanitize dialog output for portability/compatibility requirements
r309967: Use more generic f_yesno() from provided API
r309968: Properly quote variable
r309969: Send stderr to the same place as stdout
r309970: Remove completely unnecesary parentheses
r309971: Start deconstructing a conveluted hunk of code
r309972: If the first ping succeeded, why on Earth should we ping it again?
r309973: Why use $? when you can use the command itself
r309974: These two error messages have always been backwards since inception
r309975: Continued resolution of conveluted statement
r309976: You don't need parentheses for awk's printf
r309977: Whitespace and alignment
r309978: Neither printf nor print need parens in awk
r309979: This statement has too many backslashes
r309980: Just use print
r309981: Add missing quotes
r309982: Remove unnecessary quotes
r309983: Use the provided API for calculating the appropriate size of menus
r309984: Whitespace alignment
r309985: Comment
r309986: There's an API function for displaying errors
r309987: There's an API function for displaying yes/no dialogs
r309988: There's an API function for displaying pauses
r309989: There's an API function for catching errors
r309990: Calculate proper size of menu list dialog
r309991: Simplify bringup of interface after changes and catch errors
r309992: Restore previous comment
r309993: Why test $? when you can test the command
r309994: Wordsmithing
r309995: Simplify loop by moving predicate to clause
r309996: Simplify single-line if statements
r309997: The flags of a WLAN need to be quoted
r309998: It's completely pointless to replace newlines with space
r310038: Revert r309918 -- modern POSIX has deprecated -<#>/+<#> syntax

PR:		bin/214933
2017-01-08 18:14:22 +00:00
Devin Teske b892d50fbc MFC r309716: Add support for "hidden" Wi-Fi networks
PR:		bin/214933
Submitted by:	Maxim Filimonov <[email protected]>
Reviewed by:	dteske, allanjude, adrian
2017-01-08 16:55:59 +00:00
Steven Kreuzer 99e2df9e77 MFC r303877:
Write kern.randompid to /etc/sysctl.conf

Approved by:	allanjude
2016-08-27 20:43:52 +00:00
Dimitry Andric 5ceddcfe35 MFC r303631:
Fix non-functional bsdinstall services dialog.

The most recent version of bsdinstall does not seem to respect any of
the checkboxes in the "Choose the services you would like to be started
at boot" dialog.  None of the chosen services end up in the rc.conf file
that is installed onto the target system.

This is caused by the bsdinstall/scripts/hardening script, which
implements the new hardening options dialog.  The script starts by
overwriting the previously written rc.conf.services file:

    echo -n > $BSDINSTALL_TMPETC/rc.conf.services

which is obviously incorrect.  It should clear out rc.conf.hardening
instead.

Approved by:	re (kib)
Reviewed by:	allanjude
PR:		211506
Differential Revision: https://reviews.freebsd.org/D7387
2016-08-04 17:26:32 +00:00
Bartek Rutkowski 08abf7e29d MFC r302897:
Add new System Hardening menu and options to bsdinstall.

This patch add new 'hardening' file responsible for new bsdinstall
'System Hardening' menu allowing users to set some sane and carefully
picked system security options (like random process id's, hiding
other users/groups processes and others).

All options are OFF by default in this patch due to POLA principle
with intention to turn change some of them to ON by default in future.

Reviewed by:	adrian, allanjude, bdrewery, nwhitehorn
Approved by:	re@, adrian, allanjude
2016-07-28 15:54:17 +00:00
Allan Jude 0b66401cb9 MFC: r302790, r302795
Add new menu to bsdinstall to allow user to set date and time after
selecting timezone. The 'skip' button is the default selection.

Submitted by:	des
Approved by:	re (gjb)
2016-07-26 05:27:26 +00:00
Allan Jude 20f9c96dbf MFC: r302940
Fix error in bsdinstall triggered when doing a GELI encrypted install to
an MBR formatted disk

Approved by:	re (gjb)
Sponsored by:	ScaleEngine Inc.
2016-07-26 05:26:53 +00:00
Allan Jude e6ca210e3c MFC: r302941
At the start of the installation process, all ZFS pools are exported and
all GELI instances are detached, to allow a restarted install to proceed.

PR:		210814
Approved by:	re (gjb)
2016-07-26 05:26:07 +00:00
Allan Jude e302644618 Add more machines to the bsdinstall workaround blacklist
Apply the LenovoFix (fake partition in pMBR is 2nd rather than 1st)
and GPT Active fix (mark the fake pMBR partition active) to respective
hardware that is confirmed to require such to boot correct.

Submitted by:	Sam Fourman Jr. <[email protected]> (ThinkPad W520)
Submitted by:	Matthias Apitz <[email protected]> (Latitude E6330)
Approved by:	re (gjb)
Sponsored by:	ScaleEngine Inc.
2016-07-03 01:23:38 +00:00
Allan Jude ca13d5d23a Fix an error in bsdinstall when ZFS installation uses a bootpool
A separate bootpool is used when the selected partition type is MBR
or when the disk is GELI encrypted and a UEFI loader is selected.

BIOS avoids the bootpool by using bootcode and loader that support GELI.

bsdinstall did not remount the bootpool after creating the main pool,
which caused an error when mkdir tried to create /boot/zfs

PR:		210717
Approved by:	re (gjb)
Sponsored by:	ScaleEngine Inc.
2016-07-03 01:22:59 +00:00
Allan Jude 52fffe9307 Fix bsdinstall for root-on-zfs with MBR partitioning
Fix an error where vfs.root.mountfrom was not always set as required
when creating a bootpool. After the recent geliboot changes, it was only
set if the main pool was encrypted.

Also resolve an error where the bootpool was unmounted twice causing
bsdinstall to stop with an error message about the failed command.

Approved by:	re (gjb)
Sponsored by:	BSDCan Hacker Lounge
2016-06-10 14:31:59 +00:00
Andriy Voskoboinyk 4913f849ab bsdinstall: add country/regulatory domain configuration dialog.
Allow to setup country and/or regulatory domain before scanning
(since channel list is affected by regulatory restrictions this may
impact scan results).

PR:		182600 (originally)
Differential Revision:	https://reviews.freebsd.org/D6325
2016-06-08 20:42:35 +00:00
Andriy Voskoboinyk fb82771908 bsdinstall: unbreak static address assignment for wired networks.
This fixes regression introduced in r298946 (fixes static address
assignment for wireless networks).

Reported & submitted by:	allanjude
2016-05-26 11:58:36 +00:00
Allan Jude 24d17f1e24 Only set kern.geom.part.mbr.enforce_chs=0 once, instead of once per disk
Sponsored by:	ScaleEngine Inc.
2016-05-24 00:23:39 +00:00
Allan Jude bb4fd0a0d1 Add support for RAID 1+0 (striped mirrors) to bsdinstall/zfsboot
Sponsored by:	ScaleEngine Inc.
2016-05-24 00:22:29 +00:00
Allan Jude b06bc65e71 Only export and re-import the root pool if installing on MBR
This step is required in order to dd the boot2 bits into the ZFS partition

Sponsored by:	ScaleEngine Inc.
2016-05-23 17:04:13 +00:00
Allan Jude 7289f18f78 Fix missing pool name in zfs set command 2016-05-23 16:49:26 +00:00
Allan Jude dcf362194d Fix error in bsdinstall where additional filesystems cannot be mounted
Do not set canmount=noauto on the boot environment at create time, because
this causes / to not be mounted, and since the chroot is read only, new
mountpoints cannot be created.

The property is set later, when other properties are adjusted

Reported by:	HardenedBSD
Sponsored by:	ScaleEngine Inc.
2016-05-23 15:11:01 +00:00
Allan Jude a1b8f55c77 bsdinstall/zfsboot GPT+BIOS+GELI installs now make use of GELIBOOT
In this configuration, a separate bootpool is not required.
This allows ZFS Boot Environments to be used with GELI encrypted ZFS pools.

Support for GPT+EFI+GELI is planned for the future.

Tested by: Joseph Mingrone, HardenedBSD
Relnotes:	yes
Sponsored by:	ScaleEngine Inc.
Differential Revision:	https://reviews.freebsd.org/D5869
2016-05-22 20:31:52 +00:00
Allan Jude 595568b58b Fix default ZFS layout to work better by default with sysutils/beadm
The root file system is mounted early via vfs.root.mountfrom.
The canmount=noauto property only affects the zfs rc.d script.
This ensures that the 'default' BE is not mounted overtop of another BE when
one is selected from the beastie menu

Sponsored by:	ScaleEngine Inc.
2016-05-22 16:24:21 +00:00
Baptiste Daroussin 5e38260c4f Fix typo in comments for the zfsboot script
Submitted by:	Colby Swandale <[email protected]> (via github)
2016-05-22 12:59:07 +00:00
Allan Jude 06445fc0fa bsdinstall/zfsboot: Do not mirror swap when swapsize is 0
PR:		209415
Submitted by:	Ganael LAPLANCHE <[email protected]>
MFC after:	2 weeks
2016-05-10 14:38:43 +00:00
Andriy Voskoboinyk 6d8e01b078 bsdinstall: fix static address assignment for protected wireless networks.
Filter out IFCONFIG_PREFIX variable (which may contain WPA keyword)
from ifconfig parameters.

PR:		169199
2016-05-02 21:40:34 +00:00
Pedro F. Giffuni ec65e4f8d0 usr.sbin/bsdconfig: minor spelling fixes on comments.
No functional change.
2016-05-01 16:38:12 +00:00
Allan Jude 4d41f47272 Add a new installation type to bsdinstall/zfsboot: BIOS+UEFI
Installs both pmbr+gptzfsboot as well as boot1.efifat in separate partitions
The resulting system can be booted with either UEFI or BIOS/CSM.
Preference is controlled by the user's firmware boot settings.

This is now the default for zfsboot installs

PR:		208629
Submitted by:	Galael LAPLANCHE <[email protected]> (original version)
2016-04-19 03:25:36 +00:00
Allan Jude b3f7b13945 bsdinstall/zfsboot should create /tmp and /var/tmp if they do not exist
PR:		208629
PR:		208568
Submitted by:	Galael LAPLANCHE <[email protected]>
MFC after:	2 weeks
2016-04-08 15:08:22 +00:00
Allan Jude 6b5e33ba48 Do not add swap to fstab when swapsize is 0
If a user requested encrypted swap, but 0 sized, it would still be added to fstab

PR:		208630
Submitted by:	Ganael LAPLANCHE <[email protected]>
MFC after:	2 weeks
Sponsored by:	ScaleEngine Inc.
2016-04-08 15:05:06 +00:00
Allan Jude 6203e46b84 Remove 50% ZFS conditional from bsdinstall/zfsboot
Remove the requirement that the resulting partition table be atleast 50% ZFS

PR:		208094
Requested by:	brooks
Sponsored by:	ScaleEngine Inc.
2016-03-17 17:53:38 +00:00
Allan Jude 0edc8cc831 The zfsboot automated part of bsdinstall now supports UEFI
MFC after:	3 days
Sponsored by:	ScaleEngine Inc.
Differential Revision:	https://reviews.freebsd.org/D4960
2016-01-30 15:53:28 +00:00
Allan Jude a94af9543d Never 4k align the MBR bootpool because zfsldr can not deal with a gap
If the bootpool does not start at the first sector of the BSD partition
then zfsldr seeks to the wrong offset inside the ZFS vdev label, and is
unable to find zfsboot, so the system does not boot

If 4k alignment is requested, align the BSD partition in the MBR table,
and align the swap and data pool, but the bootpool must start at sector 1

While here, if 4k alignment is requested, disable MBR CHS alignment, as
this results in not-4k aligned partitions.

Reported by:	Alex Wilkinson
MFC after:	5 days
Sponsored by:	ScaleEngine Inc.
2016-01-16 19:25:16 +00:00
Eric van Gyzen 50d901977a bsdinstall: Suggest the GPT+Active workaround on Dell T5810
The Dell Precision Tower 5810 fails to boot from GPT in Legacy/BIOS mode
without the Active flag in the Protective MBR.  Suggest the workaround
during installation.

Since an increasing number of Dell systems exhibit this behavior,
I imagine all Dells past a certain date will do so.  I would like
to suggest the workaround for all Dells with a BIOS date of, say,
2014 or later, but I would need to test a variety of systems before
committing such a change.

Reviewed by:	allanjude, dteske
MFC after:	5 days
Relnotes:	We should probably suggest using GPT+Active on "recent" Dells.
Sponsored by:	Dell Inc.
Differential Revision:	https://reviews.freebsd.org/D4075
2016-01-14 00:31:00 +00:00
Glen Barber 8834318685 Merge ^/projects/release-install-debug:
- Rework MANIFEST generation and parsing via bsdinstall(8).
- Allow selecting debugging distribution sets during install.
- Rework bsdinstall(8) to fetch remote debug distribution sets
  when they are not available on the local install medium.
- Allow selecting additional non-GENERIC kernels during install.
  At present, GENERIC is still required, and installed by default.

Tested with:	head@r293203
Sponsored by:	The FreeBSD Foundation
2016-01-05 21:05:17 +00:00
Devin Teske ed27536fd5 Explicitly set permissions on entropy files
Differential Revision:	https://reviews.freebsd.org/D3933
Submitted by:	jmg
Reviewed by:	delphij, markm
Approved by:	secteam (delphij)
MFC after:	3 days
X-MFC-to:	stable/10 stable/9
2015-12-28 17:27:20 +00:00
Nathan Whitehorn 159ca5c844 Adapt to new wireless scheme where base wlan interfaces do not show up in
ifconfig anymore.
2015-12-06 00:20:45 +00:00
Bryan Drewery 7fdd45b091 Use LIBEXECDIR for /usr/libexec.
MFC after:	1 week
Sponsored by:	EMC / Isilon Storage Division
2015-11-26 01:14:40 +00:00
Allan Jude 4c95e76ac4 Add a number of models to the bsdinstall GPT hack blacklist
PR:		194359
Approved by:	bapt (mentor)
MFC after:	2 weeks
Sponsored by:	ScaleEngine Inc.
Differential Revision:	https://reviews.freebsd.org/D3525
2015-09-16 03:32:27 +00:00
Devin Teske 65f3614085 Replace `return' outside of function with exit
MFC after:	3 days
X-MFC-to:	stable/10
Pointy hat to:	me
2015-09-11 21:18:21 +00:00
Devin Teske 0a8354938c Use a variable for readability
MFC after:	3 days
X-MFC-to:	stable/10
2015-09-11 21:14:48 +00:00
Devin Teske e5a24129fa Update copyright
MFC after:	3 days
X-MFC-to:	stable/10
2015-09-11 21:13:34 +00:00
Devin Teske 96eeaba5b1 Better to reset trap and explicitly exit success
MFC after:	3 days
X-MFC-to:	stable/10
2015-09-11 21:12:41 +00:00
Devin Teske 521414ebc7 Remove trailing newline at EOF
MFC after:	3 days
X-MFC-to:	stable/10
2015-09-11 21:09:39 +00:00
Devin Teske 5e1ed71e4f Produce meaningful exit code
MFC after:	3 days
X-MFC-to:	stable/10
2015-09-11 21:08:46 +00:00