mirror of
git://slackware.nl/current.git
synced 2024-12-31 10:28:29 +01:00
3889868763
a/elilo-3.16-x86_64-9.txz: Rebuilt. eliloconfig: don't assume that mount output lists the / partition first. a/f2fs-tools-1.12.0-x86_64-1.txz: Added. a/kernel-generic-4.19.5-x86_64-1.txz: Upgraded. a/kernel-huge-4.19.5-x86_64-1.txz: Upgraded. CRYPTO_CRC32 m -> y F2FS_FS m -> y a/kernel-modules-4.19.5-x86_64-1.txz: Upgraded. a/sysvinit-scripts-2.1-noarch-22.txz: Rebuilt. rc.S: if we're using F2FS for the root filesystem, don't try to check it as fsck.f2fs throws an error on trying to check a read-only filesystem. d/clisp-2.49_20181112_df3b9f6fd-x86_64-1.txz: Upgraded. d/kernel-headers-4.19.5-x86-1.txz: Upgraded. k/kernel-source-4.19.5-noarch-1.txz: Upgraded. l/graphite2-1.3.12-x86_64-1.txz: Added. Required by harfbuzz in order to use it as a system library for TeXlive. l/harfbuzz-2.1.3-x86_64-1.txz: Upgraded. Requires graphite2-1.3.12. t/texlive-2018.180822-x86_64-4.txz: Rebuilt. Use system harfbuzz, not the bundled version. isolinux/initrd.img: Rebuilt. Activate LVM volumes at boot, not only when setup is run. Make /etc/mtab a symlink to /proc/mounts on the installer. On a freshly installed system, make /etc/mtab a symlink to /proc/mounts. Include f2fs-tools on the installer. Support installing on F2FS partitions. kernels/*: Upgraded. usb-and-pxe-installers/usbboot.img: Rebuilt.
254 lines
7.4 KiB
Bash
Executable file
254 lines
7.4 KiB
Bash
Executable file
#!/bin/sh
|
|
# rc.S: Basic system initialization.
|
|
|
|
# Any /etc/mtab that exists here is old, so we start with a new one:
|
|
/bin/rm -f /etc/mtab{,~,.tmp} && /bin/touch /etc/mtab
|
|
|
|
# Add (fake) entry for / to /etc/mtab:
|
|
/sbin/mount -f -w /dev/initramfs / -t tmpfs 1> /dev/null
|
|
|
|
# Mount /proc:
|
|
/sbin/mount -v proc /proc -t proc 1> /dev/null
|
|
|
|
# Mount sysfs next:
|
|
/sbin/mount -v sysfs /sys -t sysfs 1> /dev/null
|
|
|
|
# Activate swap:
|
|
/sbin/swapon -a 1> /dev/null
|
|
|
|
if [ -x /sbin/ldconfig ]; then
|
|
/sbin/ldconfig 1> /dev/null
|
|
fi
|
|
|
|
## Detect serial console from kernel command line:
|
|
#if cat /proc/cmdline | grep console=ttyS 1> /dev/null 2> /dev/null ; then
|
|
# SERIAL_CONSOLE="true"
|
|
#fi
|
|
|
|
# System logger (mostly to eat annoying messages):
|
|
/sbin/syslogd 2> /dev/null
|
|
sleep 1
|
|
/sbin/klogd -c 3 1> /dev/null
|
|
|
|
# Try to load the loop module:
|
|
modprobe loop 1> /dev/null 2> /dev/null
|
|
|
|
# Run udev:
|
|
if ! grep -wq noudev /proc/cmdline ; then
|
|
/bin/bash /etc/rc.d/rc.udev start
|
|
|
|
# Re-assemble RAID volumes:
|
|
/sbin/mdadm -E -s > /etc/mdadm.conf
|
|
/sbin/mdadm -S -s
|
|
/sbin/mdadm -A -s
|
|
# This seems to make the kernel see partitions more reliably:
|
|
fdisk -l /dev/md* 1> /dev/null 2> /dev/null
|
|
else
|
|
# Run our old detection routines:
|
|
|
|
# Look for USB keyboard or storage:
|
|
/etc/rc.d/rc.usb start
|
|
sleep 3
|
|
|
|
# Look for IEEE1394 devices:
|
|
if grep 1394 /proc/pci 1> /dev/null 2> /dev/null ; then
|
|
/etc/rc.d/rc.ieee1394 start
|
|
#sleep 3
|
|
fi
|
|
|
|
# Load additional install floppies:
|
|
for NEWDISK in 2 ; do
|
|
if [ ! -r /etc/disk${NEWDISK} ]; then
|
|
while [ 0 ]; do
|
|
echo
|
|
echo -n "Insert install.${NEWDISK} floppy disk to be loaded into RAM disk and press ENTER"
|
|
read readfoo;
|
|
if [ "$readfoo" = "Q" -o "$readfoo" = "q" ]; then
|
|
break;
|
|
fi
|
|
echo -n "Loading install.${NEWDISK} floppy into RAM disk... "
|
|
( cd / ; cat /dev/fd0 | zcat 2> /dev/null | tar xf - )
|
|
if [ -r /etc/disk${NEWDISK} ]; then
|
|
echo "done."
|
|
echo
|
|
break;
|
|
else
|
|
echo "Error. (reload or enter Q)"
|
|
echo
|
|
continue;
|
|
fi
|
|
done
|
|
fi
|
|
done
|
|
|
|
### PROBABLY USELESS WITHOUT SOME TIMED DELAY ABOVE
|
|
## Start USB again (in case we missed a USB keyboard)
|
|
#/etc/rc.d/rc.usb start
|
|
|
|
# Make detected partitions:
|
|
/dev/makedevs.sh
|
|
|
|
## Not needed with CONFIG_SCSI_MULTI_LUN=y
|
|
#unset SCAN
|
|
## Now we should rescan the "SCSI" bus to look for new USB or firewire devices
|
|
## that look like SCSI devices:
|
|
#if [ -r /proc/bus/usb/devices ]; then
|
|
# if cat /proc/bus/usb/devices | grep -w usb-storage 1> /dev/null 2> /dev/null ; then
|
|
# SCAN="true"
|
|
# fi
|
|
#fi
|
|
#if [ -r /proc/bus/ieee1394/devices ]; then
|
|
# if cat /proc/bus/ieee1394/devices | grep -w SBP2 1> /dev/null 2> /dev/null ; then
|
|
# SCAN="true"
|
|
# fi
|
|
#fi
|
|
#if [ "$SCAN" = "true" ]; then
|
|
# if ! cat /proc/cmdline | grep -q noscanluns 2> /dev/null ; then
|
|
# echo "Detected new USB/IEEE1394 storage devices... scanning all LUNs."
|
|
# echo "(to skip, give a 'noscanluns' kernel option at boot)"
|
|
# #sleep 5
|
|
# sh /sbin/rescan-scsi-bus -l
|
|
# #sleep 1
|
|
# fi
|
|
#fi
|
|
#unset SCAN
|
|
|
|
# Re-assemble RAID volumes:
|
|
/sbin/mdadm -E -s > /etc/mdadm.conf
|
|
/sbin/mdadm -S -s
|
|
/sbin/mdadm -A -s
|
|
# This seems to make the kernel see partitions more reliably:
|
|
fdisk -l /dev/md* 1> /dev/null 2> /dev/null
|
|
|
|
# Check /proc/partitions again:
|
|
/dev/makedevs.sh
|
|
|
|
# Create LVM nodes:
|
|
/dev/devmap_mknod.sh
|
|
|
|
fi # End Run udev:
|
|
|
|
# Here's the situation. Because of the practice of keeping the local
|
|
# time (rather than UTC) in the system's clock, at any given time half
|
|
# of the people doing an install will be creating files that upon
|
|
# reboot will appear to have been created in the future.
|
|
#
|
|
# There are a lot of things that aren't happy when that happens. The
|
|
# one that screams the most loudly is e2fsck, and we don't want to
|
|
# anger that! Sometimes it even proceeds to check the partitions just
|
|
# to be sure the user is fully punished.
|
|
#
|
|
# But, there's a simple solution. If we set the (temporary) Linux clock
|
|
# to yesterday (-24h), then there's no way that could occur. Everything
|
|
# on the system will be in the past (but not too far in the past).
|
|
# Since files will quickly be put into use and given the correct after
|
|
# reboot, this really shouldn't have a negative impact. Plus, it affects
|
|
# only newly created files during installation -- any file shipped in a
|
|
# package will have an accurate time of creation. (for its timezone ;-)
|
|
#
|
|
# Update: We have to use 2 days ago, or chroot()+timezone offset might
|
|
# still be in the future... <sigh>
|
|
#
|
|
touch /.today
|
|
/bin/sh /sbin/fakedate
|
|
|
|
if [ -x /etc/rc.d/rc.inet1 ]; then
|
|
/bin/sh /etc/rc.d/rc.inet1
|
|
fi
|
|
|
|
# pcmciautils is installing rc.pcmcia as chmod 644, so we'll change that.
|
|
# It won't be run at boot time, but it'll make it easy for the pcmcia script
|
|
# or to run it from the command line.
|
|
chmod 755 /etc/rc.d/rc.pcmcia
|
|
|
|
# Scan for existing LVM partitions:
|
|
# We will run 'vgscan -ay' in the setup to prevent a 10 second sleep;
|
|
vgscan --mknodes 2> /tmp/foo
|
|
cat /tmp/foo | uniq
|
|
rm -f /tmp/foo
|
|
|
|
# Activate LVM volumes:
|
|
echo "Activating LVM volumes:"
|
|
vgchange -ay
|
|
|
|
if [ -x /etc/rc.d/rc.font ]; then
|
|
/bin/sh /etc/rc.d/rc.font
|
|
fi
|
|
|
|
# Don't automatically blank the screen, or it will go black during the install
|
|
# process when stray keystrokes might be dangerous:
|
|
/bin/setterm -blank 0
|
|
|
|
echo > /etc/motd
|
|
echo "`/bin/uname -a | /bin/cut -d\ -f1,3`." >> /etc/motd
|
|
echo >> /etc/motd
|
|
cat << EOF >> /etc/motd
|
|
If you're upgrading an existing Slackware system, you might want to
|
|
remove old packages before you run 'setup' to install the new ones. If
|
|
you don't, your system will still work but there might be some old files
|
|
left laying around on your drive.
|
|
|
|
Just mount your Linux partitions under /mnt and type 'pkgtool'. If you
|
|
don't know how to mount your partitions, type 'pkgtool' and it will tell
|
|
you how it's done.
|
|
|
|
To partition your hard drive(s), use 'cfdisk' or 'fdisk'.
|
|
To start the main installation (after partitioning), type 'setup'.
|
|
|
|
EOF
|
|
|
|
# Dropbear seems to handle the $PATH correctly now...
|
|
#echo > /etc/motd.net
|
|
#echo "First command to run is 'source /etc/profile'." >> /etc/motd.net
|
|
#echo "This will setup the PATH for you." >> /etc/motd.net
|
|
#echo >> /etc/motd.net
|
|
|
|
# If possible, figure out what kernel we just booted with:
|
|
unset SLACK_KERNEL
|
|
for ARG in `cat /proc/cmdline` ; do
|
|
if [ "`echo $ARG | cut -f 1 -d =`" = "SLACK_KERNEL" ]; then
|
|
IMAGE="`echo $ARG | cut -f 2 -d =`"
|
|
SLACK_KERNEL=$IMAGE
|
|
fi
|
|
done
|
|
export SLACK_KERNEL
|
|
|
|
. /etc/profile
|
|
|
|
clear
|
|
if ! cat /proc/cmdline | grep -q 'kbd=' 2> /dev/null ; then
|
|
echo
|
|
echo
|
|
echo "<OPTION TO LOAD SUPPORT FOR NON-US KEYBOARD>"
|
|
echo
|
|
echo "If you are not using a US keyboard, you may now load a different"
|
|
echo "keyboard map. To select a different keyboard map, please enter 1"
|
|
echo "now. To continue using the US map, just hit enter."
|
|
echo
|
|
echo -n "Enter 1 to select a keyboard map: "
|
|
read ONE
|
|
if [ "$ONE" = "1" ]; then
|
|
/usr/lib/setup/SeTkeymap
|
|
fi
|
|
else
|
|
for ARG in `cat /proc/cmdline` ; do
|
|
if [ "`echo $ARG | cut -f1 -d=`" = "kbd" ]; then
|
|
BMAP="`echo $ARG | cut -f2 -d=`.bmap"
|
|
fi
|
|
done
|
|
tar xzOf /etc/keymaps.tar.gz $BMAP | loadkmap
|
|
unset BMAP
|
|
fi
|
|
clear
|
|
|
|
# Provision for unattended network configuration:
|
|
/usr/lib/setup/SeTnet boot
|
|
# Start dropbear ssh server (only if a configured interface is present):
|
|
/etc/rc.d/rc.dropbear start
|
|
|
|
# Fake login: (fooled ya! ;^)
|
|
|
|
cat /etc/issue
|
|
echo -n "slackware login: "
|
|
read BOGUS_LOGIN
|
|
cat /etc/motd
|