diff --git a/files/initrd/opt/rr/include/functions.sh b/files/initrd/opt/rr/include/functions.sh index a0fc722e..6bdf6755 100755 --- a/files/initrd/opt/rr/include/functions.sh +++ b/files/initrd/opt/rr/include/functions.sh @@ -268,14 +268,11 @@ function _sort_netif() { # 1 - device path function getBus() { local BUS="" - # xvd - [ -z "${BUS}" ] && BUS=$(lsblk -dpno KNAME,SUBSYSTEMS 2>/dev/null | grep "${1} " | grep -q "xen" && echo "xen") - # usb/ata(sata/ide)/scsi - [ -z "${BUS}" ] && BUS=$(udevadm info --query property --name "${1}" 2>/dev/null | grep ID_BUS | cut -d= -f2 | sed 's/ata/sata/') - # usb/sata(sata/ide)/nvme - [ -z "${BUS}" ] && BUS=$(lsblk -dpno KNAME,TRAN 2>/dev/null | grep "${1} " | awk '{print $2}') #Spaces are intentional - # usb/scsi(sata/ide)/virtio(scsi/virtio)/mmc/nvme - [ -z "${BUS}" ] && BUS=$(lsblk -dpno KNAME,SUBSYSTEMS 2>/dev/null | grep "${1} " | awk '{print $2}' | awk -F':' '{print $(NF-1)}' | sed 's/_host//') # Spaces are intentional + # usb/ata(ide)/sata/sas/virtio/mmc/nvme + [ -z "${BUS}" ] && BUS=$(lsblk -dpno KNAME,TRAN 2>/dev/null | grep "${1} " | awk '{print $2}' | sed 's/ata/ide/') #Spaces are intentional + # usb/scsi(ide/sata/sas)/virtio/mmc/nvme/vmbus/xen(xvd) + [ -z "${BUS}" ] && BUS=$(lsblk -dpno KNAME,SUBSYSTEMS 2>/dev/null | grep "${1} " | awk '{print $2}' | awk -F':' '{print $(NF-1)}' | sed 's/_host//' | sed 's/.*xen.*/xen/') # Spaces are intentional + [ -z "${BUS}" ] && "UNKNOWN" echo "${BUS}" return 0 } diff --git a/files/initrd/opt/rr/init.sh b/files/initrd/opt/rr/init.sh index 4e1cb7e9..2827b5cd 100755 --- a/files/initrd/opt/rr/init.sh +++ b/files/initrd/opt/rr/init.sh @@ -111,7 +111,7 @@ PID="0x0001" TYPE="DoM" BUS=$(getBus "${LOADER_DISK}") -BUSLIST="usb sata scsi nvme mmc xen" +BUSLIST="usb sata scsi nvme mmc ide vmbus xen" if [ "${BUS}" = "usb" ]; then VID="0x$(udevadm info --query property --name ${LOADER_DISK} 2>/dev/null | grep ID_VENDOR_ID | cut -d= -f2)" PID="0x$(udevadm info --query property --name ${LOADER_DISK} 2>/dev/null | grep ID_MODEL_ID | cut -d= -f2)" @@ -121,7 +121,7 @@ elif ! echo "${BUSLIST}" | grep -wq "${BUS}"; then echo "LOCALBUILD MODE" TYPE="PC" else - die "$(TEXT "Loader disk neither USB or SATA/SCSI/NVME/MMC/XEN DoM")" + die "$(TEXT "Loader disk neither USB or SATA/SCSI/NVME/MMC/IDE/VMBUS/XEN DoM")" fi fi diff --git a/files/initrd/opt/rr/menu.sh b/files/initrd/opt/rr/menu.sh index 1b4081d9..b75c6bb3 100755 --- a/files/initrd/opt/rr/menu.sh +++ b/files/initrd/opt/rr/menu.sh @@ -1652,7 +1652,7 @@ function setWirelessAccount() { function showDisksInfo() { MSG="" NUMPORTS=0 - [ $(lspci -d ::106 2>/dev/null | wc -l) -gt 0 ] && MSG+="\nATA:\n" + [ $(lspci -d ::106 2>/dev/null | wc -l) -gt 0 ] && MSG+="\nSATA:\n" for PCI in $(lspci -d ::106 2>/dev/null | awk '{print $1}'); do NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://") MSG+="\Zb${NAME}\Zn\nPorts: " @@ -1696,6 +1696,14 @@ function showDisksInfo() { MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n" NUMPORTS=$((${NUMPORTS} + ${PORTNUM})) done + [ $(lspci -d ::101 2>/dev/null | wc -l) -gt 0 ] && MSG+="\nIDE:\n" + for PCI in $(lspci -d ::101 2>/dev/null | awk '{print $1}'); do + NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://") + PORTNUM=$(ls -l /sys/block/* 2>/dev/null | grep "${PCI}" | wc -l) + [ ${PORTNUM} -eq 0 ] && continue + MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n" + NUMPORTS=$((${NUMPORTS} + ${PORTNUM})) + done [ $(ls -l /sys/class/scsi_host 2>/dev/null | grep usb | wc -l) -gt 0 ] && MSG+="\nUSB:\n" for PCI in $(lspci -d ::c03 2>/dev/null | awk '{print $1}'); do NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://") @@ -1721,6 +1729,13 @@ function showDisksInfo() { MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n" NUMPORTS=$((${NUMPORTS} + ${PORTNUM})) done + if [ $(lsblk -dpno KNAME,SUBSYSTEMS 2>/dev/null | grep 'vmbus:acpi' | wc -l) -gt 0 ]; then + MSG+="\nVMBUS:\n" + NAME="vmbus:acpi" + PORTNUM=$(lsblk -dpno KNAME,SUBSYSTEMS 2>/dev/null | grep 'vmbus:acpi' | wc -l) + MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n" + NUMPORTS=$((${NUMPORTS} + ${PORTNUM})) + fi MSG+="\n" MSG+="$(printf "$(TEXT "\nTotal of ports: %s\n")" "${NUMPORTS}")" MSG+="$(TEXT "\nPorts with color \Z1red\Zn as DUMMY, color \Z2\Zbgreen\Zn has drive connected.")" diff --git a/files/mnt/p1/boot/grub/grub.cfg b/files/mnt/p1/boot/grub/grub.cfg index 24d35579..ccc4e6b1 100644 --- a/files/mnt/p1/boot/grub/grub.cfg +++ b/files/mnt/p1/boot/grub/grub.cfg @@ -10,6 +10,11 @@ insmod linux insmod gzio insmod fat insmod ext2 +insmod ata +insmod btrfs +insmod ntfs +insmod part_msdos +insmod part_gpt insmod png insmod jpeg