#!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin RELEASE=`cat /etc/os-release | grep -w NAME | sed 's/NAME=//g' | sed 's/"//g' | sed 's/ GNU\/Linux//g'` if [[ -f "/etc/opt/board.txt" ]]; then . /etc/opt/board.txt fi ROOTFS=`findmnt -v -n -o SOURCE /` BLOCK=`findmnt -v -n -o SOURCE / | sed 's/\/dev\///' | sed 's/..$//'` PART=`findmnt -v -n -o SOURCE / | sed 's/.*\(.\)/\1/'` FSTYPE=`findmnt -v -n -o FSTYPE /` # Functions partition_uuid(){ ROOT_PARTUUID=$(blkid -o export -- $ROOTFS | sed -ne 's/^PARTUUID=//p') echo ROOT_PARTUUID='"'$ROOT_PARTUUID'"' > /etc/opt/part-uuid.txt } extlinux_conf(){ if [[ "$FSTYPE" == "ext4" ]]; then ROOT_FSTYPE="rootfstype=ext4" fi if [[ "$FSTYPE" == "btrfs" ]]; then ROOT_FSTYPE="rootfstype=btrfs rootflags=subvol=@" fi if [[ "$FSTYPE" == "xfs" ]]; then ROOT_FSTYPE="rootfstype=xfs" fi FDT="../${FAMILY}/${DTB}.dtb" FDTDIR="../${FAMILY}/" CMDLINE="append earlyprintk ${CONSOLE} rw root=PARTUUID=${ROOT_PARTUUID} rootwait ${ROOT_FSTYPE} fsck.repair=yes ${EXTRA} loglevel=1 init=/sbin/init" rm -f /boot/extlinux/extlinux.conf tee /boot/extlinux/extlinux.conf < /dev/null 2>&1 . /etc/opt/part-uuid.txt if [[ -f "/boot/extlinux/extlinux.conf" ]]; then extlinux_conf > /dev/null 2>&1 fi if [[ -f "/boot/boot.ini" ]]; then sed -i '3s/.*/setenv uuid "'"root=PARTUUID=${ROOT_PARTUUID}"'"/' /boot/boot.ini fi rm -f /etc/opt/part-uuid.txt fi # Fsck fat partition if [[ `findmnt -v -n /boot | grep -w "vfat"` ]]; then BOOT=`findmnt -v -n -o SOURCE /boot` umount /boot sleep .50 bash fsck.fat -trawl $BOOT > /dev/null 2>&1 sleep .50 mount /boot fi if [[ `findmnt -v -n /boot/efi | grep -w "vfat"` ]]; then BOOT=`findmnt -v -n -o SOURCE /boot/efi` umount /boot/efi sleep .50 bash fsck.fat -trawl $BOOT > /dev/null 2>&1 sleep .50 mount /boot/efi fi if [[ `findmnt -v -n /boot/broadcom | grep -w "vfat"` ]]; then BOOT=`findmnt -v -n -o SOURCE /boot/broadcom` umount /boot/broadcom sleep .50 bash fsck.fat -trawl $BOOT > /dev/null 2>&1 sleep .50 mount /boot/broadcom fi ### Clean up if [[ "$RELEASE" == "Devuan" ]]; then update-rc.d firstboot remove rm -f /etc/init.d/firstboot else systemctl disable firstboot fi rm -f /var/cache/debconf/* rm -f /usr/local/sbin/firstboot exit 0