Kod: Markera allt
#! /bin/bash
#
function getdisk {
SPEC=$(echo $1 | sed 's=/dev/==g')
DISKS=$(ls -l /sys/block | tail -n +2 | grep -v virtual | awk '{ print $9 }')
for DISK in $DISKS; do
OUT=$(ls -l /sys/block/$DISK/* | grep $SPEC)
if [[ ! -z $OUT ]]; then
DNAM=$(ls -l /sys/block/$DISK/* | grep $SPEC | awk -F : '{ print $1 }' | rev | awk -F / '{ print $2 }' | rev | sort -u | sed '/^$/d')
echo $DNAM
break
fi
done
return
}
#
function textblock {
SPC="$1"
CMD="$2"
IFS='
'
OUT=$(eval $CMD)
for LINE in $OUT; do
echo $SPC$LINE
done
}
#
SPACE=" "
BOOT=$([ -d /sys/firmware/efi ] && echo UEFI || echo BIOS)
#
OSTYPE=$(uname -s)
#
ROOTUUID=$(cat /proc/cmdline | awk -F UUID= '{ print $2 }' | awk '{ print $1 }')
if [[ ! -z $ROOTUUID ]]; then
ROOTPART=$(ls -l /dev/disk/by-uuid/ | grep $ROOTUUID | awk -F "->" '{ print $2 }' | xargs | sed 's-../..-/dev-g')
ROOTFS=$(blkid -o value -s TYPE $ROOTPART)
ROOTDISK=/dev/$(getdisk $ROOTPART)
ROOTINFO=$(echo $(echo -n "<empty>"; dd if=$ROOTDISK bs=512 count=1 skip=1 2> /dev/null | cut -b -8) | sed 's/<empty>//g')
else
ROOTPART=$(cat /proc/cmdline | awk -F union= '{ print $2 }' | awk '{ print $1 }')
ROOTFS="-"
ROOTDISK="-"
ROOTINFO="-"
fi
#
echo
echo "OS:$SPACE $OSTYPE"
echo "Boot:$SPACE $BOOT"
echo "Rootdisk:$SPACE$ROOTDISK"
echo "Rootpart:$SPACE$ROOTPART /"
echo "RootFS:$SPACE $ROOTFS"
echo "Info:$SPACE $ROOTINFO"
if [[ ! -z $ROOTUUID ]]; then
textblock "$SPACE " "gdisk -l $ROOTDISK | tail -n +3 | head -n 5"
fi
if [[ $BOOT == "UEFI" ]]; then
EFIPART=$(mount | grep /boot/efi | awk '{ print $1 }')
if [[ ! -z $EFIPART ]]; then
EFIDIR=$(mount | grep $EFIPART | awk '{ print $3 }')
EFIFS=$(blkid -o value -s TYPE $EFIPART)
EFIDISK=/dev/$(getdisk $EFIPART)
#echo "EFIINFO=S(dd if=$EFIDISK bs=512 count=1 skip=1 2> /dev/null | cut -b -8 2> /dev/null )"
#EFIINFO=$(tr -d '\0' dd if=$EFIDISK bs=512 count=1 skip=1 2> /dev/null | cut -b -8) 2> /dev/null
EFIINFO=$(echo $(echo -n "<empty>"; dd if=$EFIDISK bs=512 count=1 skip=1 2> /dev/null | cut -b -8) | sed 's/<empty>//g')
if [[ $EFIDISK != $ROOTDISK ]]; then
INFO="(other)"
else
INFO="(same)"
fi
echo "EFIdisk:$SPACE $EFIDISK $INFO"
echo "EFIpart:$SPACE $EFIPART $EFIDIR"
echo "EFIFS:$SPACE $EFIFS"
if [[ $EFIDISK != $ROOTDISK ]]; then
echo "Info:$SPACE $EFIINFO $COMP"
textblock "$SPACE " "gdisk -l $EFIDISK | tail -n +3 | head -n 5"
fi
fi
fi
NAME=$(uname -s)
MACHINE=$(uname -m)
RUNNING_KRNL=$(uname -r)
RUNNING_INITRD="/boot/initrd.img-$RUNNING_KRNL"
NEWEST_KRNL=$(ls -l /boot/vmlinuz | awk '{ print $11 }' | sed 's/vmlinuz-//g')
echo "Kernel:$SPACE $RUNNING_KRNL"
if [[ -r $RUNNING_INITRD ]]; then
UPDATED=$(ls /boot/initr* --time-style=+%Y-%m-%d_%H:%M -l | tail -1 | awk '{ print $6 }')
echo "Updated:$SPACE $UPDATED"
fi
if [[ $RUNNING_KRNL != $NEWEST_KRNL ]]; then
echo -e "\033[1m\033[31m=>A newer kernel exists, consider rebooting !!!!!\033[0m"
echo "New krnl:$SPACE$NEWEST_KRNL"
fi
echo
exit