Acontece que o script de inicialização no initramfs do knoppix é um código de espaguete.
Em particular, foi codificado para apenas aceitar dispositivos no formato /dev/sdxy
, causando problemas com nomes de caminhos mais longos e UUID.
Acabei de criar um novo initrd, cortar toda a seção e codificar meu UUID para ele. Claro que não é assim tão fácil. O knoppix initrd é tão pequeno que não tem coisas como blkid
ou a capacidade de montar por UUID=
.
Acabei encontrando o arquivo do dispositivo com fdisk e grep:
message "${CRE}${RED}This minitrt has been hacked by Jonathan Vollebregt due to the horrific state of the knoppix init. You are about to see a very dirty hack.${NORMAL} "
echo "Hardcoded identifier awaits: Using fdisk and partition details to match device"
echo "grepping '/dev/sd.5.+4096.+57935871.+28965888.+83.+Linux'"
BOOTDEV='fdisk -lu'
BOOTDEV='echo "$BOOTDEV" | grep -E "^/dev/sd.5.+4096.+57935871.+28965888.+83.+Linux$"'
BOOTDEV='echo "$BOOTDEV" | grep -o "^/dev/sd.5"'
if [ -z "$BOOTDEV" ]; then
echo "Well shit..."
sleep 1m
fi
echo "Device file: $BOOTDEV"
echo "mkdir -p /mnt-hack"
mkdir -p "/mnt-hack"
echo "mount -t ext4 -o ro $BOOTDEV /mnt-hack"
mount -t ext4 -o ro "$BOOTDEV" "/mnt-hack"
BOOTFILE="/${BOOTFROM#*/}"
echo "Stripping also reveals: /$BOOTFILE"
echo "mount -t iso9660 -o ro /mnt-hack/$BOOTFILE $BOOTSYS"
mount -t iso9660 -o ro "/mnt-hack/$BOOTFILE" "$BOOTSYS"
echo "knoppix_dir=$knoppix_dir"
echo "BOOTSYS=$BOOTSYS"
A partição em questão é de tamanho único, então duvido que colidirá em breve.