Linuxrc kérdés

Fórumok

Sziasztok!

Egy óriási nagy segítséget szeretnék kérni tőletek.

A szitu a következő: Csinálgatom az UHU-Linux 2.0 (Live) kék rózsa CD-t, ami már egyre jobban közeledik a finalhoz. Csakhogy van még1 dolog, amit meg kell oldanom, viszonylag sürgősen. A Live CD linuxrc fájlja alapból csinál egy új blokkos eszközt /dev/livecd néven. Tulajdonképpen erre hivatkozik a rendszer a lemez kiadása esetén is.

Ez a rész tulajdonképpen így néz ki:
====================================

mount -nt sysfs sys /sys

mymodprobe `pcimodules|sort -u` ide-cd loop sd_mod sr_mod \
ata_piix sata_nv sata_promise sata_sil \
sata_sis sata_svw sata_sx4 sata_via sata_vsc
$preinitcmd

if [ "$LANG" = "en_US.UTF-8" ]; then
msg "Live CD searching in the CD/DVD drive"
else
msg "Live CD keresése a CD/DVD meghajtókban..."
fi

ls /sys/block/*/dev|sort|
while read
do
mknod /dev/livecd b `cat $REPLY|sed 's/:/ /'`
if mount /dev/livecd -nt iso9660 -o ro boot/cdrom 2>/dev/null ; then
if [[ -f /boot/cdrom/live-release ]] ; then
if [[ $(
break
fi
fi
umount -d /boot/cdrom
fi
rm /dev/livecd
done

if [[ ! -f /boot/cdrom/live-release ]] ; then
if [ "$LANG" = "en_US.UTF-8" ]; then
echo -e "\033[31m\033[1Not found Live CD! ENTER: starting minimal Linux system.\033[m"
else
echo -e "\033[31m\033[1Nem találom a Live CD-t! ENTER: minimális Linux rendszer indítása.\033[m"
fi
read a
exec /bin/bash
# exit 1
fi

if [ "$LANG" = "en_US.UTF-8" ]; then
msg "Found Live CD: `stat -c '%t:%T' /dev/livecd`"
else
msg "Megtaláltam a Live CD-t itt: `stat -c '%t:%T' /dev/livecd`"
fi

if [ "$LANG" = "en_US.UTF-8" ]; then
msg "Creating loop device"
else
msg "Loop eszköz létrehozása"
fi

for i in 0 1 2 3 4 5 6 7; do
mknod /dev/loop$i b 7 $i
done

if [ "$LANG" = "en_US.UTF-8" ]; then
msg "mounting Live CD"
else
msg "Live CD mountolása"
fi
if [ "$LANG" = "en_US.UTF-8" ]; then
msg "mounting /tmp and setting in write-only"
else
msg "/tmp mountolása, és írhatóvá tétele"
fi

mount -nt tmpfs tmp /tmp
mkdir -p /tmp/.ICE-unix
mkdir -p /tmp/.X11-unix
mkdir -p /tmp/clamav-dbase
mkdir -p /tmp/live
chmod 1777 /tmp/.ICE-unix
chmod 1777 /tmp/.X11-unix
chmod 1777 /tmp/clamav-dbase
chmod 1777 /tmp/live

mount -nt squashfs /boot/cdrom/rescue/bluerose /boot/rescue -o loop,ro

A CD így szépen működik, csupán egyetlen szépséghibája, hogy a CD meghajtót totálisan kisajátítja magának. Ez főleg akkor gáz, ha a gépben mondjuk csak 1 darab DVD író van, és szeretnénk is használni, pl: adatot írni vele. Jobb híján azt találtam ki, hogy ha a bluerose nevű fájlt felmásoljuk 1 partícióra, vagy 1 pendrivera (összvissz 180 MB), akkor előbb nézze végig a gépben található lemezeket, és ha valahol megtalálja, akkor onnan induljon, onnan bontsa ki magát, stb. Ha esetleg nem lenne világos, a /boot/cdrom/rescue/bluerose fájlba van "besquashelve" az etc, az usr (szintén squashfs), a var, és a root fájl. Próbáltam azt, hogy 1 for ciklussal felmountoltam egyenként a /dev/[hs]d[a-d] partíciókat, és megnéztem, van-e a partíció gyökerében bluerose fájl, majd if-el eldöntöttem, hogy ha van, akkor onnan folyt. köv., egyébként nincs más választás bootoljon a CD-ről. Csakhogy nagyon meglepődtem. Ugyanis itt még nincs dev fájlrendszer, csak sysfs. Vajon miért? Ráadásul itt most úgy kell gondolkodni, hogy itt még csak a kernelre, és a bashre számíthatok maximum. Illetve az initrd-re. Szóval ezt valahogy meg kellene oldanom. De hogyan? Nem lennék hálátlan

Előre is köszönöm szépen a segítséget. Ha valami nem lenne világos, nyugodtan kérdezzetek.

--
Üdv:

Charlos