SystemRescueCd pendrivera grubbal

Goosfrabaa küldte be h, 2010-02-01 23:32 időpontban

Ha valahol át kell méretezni valamilyen partíciót, hálózatot kell tesztelni, vagy akár nagy tömegben kell klónozni partíciót/diszket jól jön a linuxos SystemRescueCd. Évek óta nagy megelégedéssel használom ezt a kitűnő live disztribúciót, amely ~250MB méretéhez képest hihetetlen sok alkalmazást tartalmaz. Természetesen nem csak CD-ről futtatható, jól érzi magát egy pendriveon is. Alap boot managere a syslinux, ami egyszerű és nagyszerű, de ha valakinek a menüs Grub hiányzik, hát íme a recept lépésről-lépésre.

Először is egy USB-ről futó változatot kell készíteni.
(Ha a hivatalos módon (a systemrescuecd.iso felcsatolása és az usb_inst.sh futtatása után) "No Default or UI found" hibaüzenetet kapunk, akkor érdemes a pen driveot FAT16-ra formattálni -egyes régi BIOSokon állítólag csak ezzel a trükkel indul.
Ha ez sem segít, akkor a rufus nevű Windowsos progit ajánlom, amivel könnyedén lehet bootolható USB eszközöket készíteni.)

Az eredeti leírás (nagyrészt) itt található. (Figyelem ez a leírás Linux alóli megoldásról szól és végig root nevében dolgozunk):

  • Töltsük le az aktuális iso imaget (mondjuk a /tmp/ alá)!
    Pl: wget http://kent.dl.sourceforge.net/project/systemrescuecd/sysresccd-x86/1.3.5/systemrescuecd-x86-1.3.5.iso -P /tmp/
  • Csatlakoztassunk egy pendriveot és figyeljük meg, hogyan látja a rendszerünk!
    Pl: fdisk -l
    /dev/sdb1 * 1 121 971901 c W95 FAT32 (LBA)
  • Formattáljuk a pendrive partícióját (Figyelem! Minden adat elvész!)
    Pl: mkfs.vfat -F 32 -n SYSRESC /dev/sdb1
  • A pendrive MBR-ba kerül a syslinux (nálam a syslinux a /usr/lib/syslinux könyvtárban található)
    Pl: dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdb
    Egy szinkronizálás nem árt, hogy biztosan minden az eszközre kerüljön
    sync
  • Mountoljuk fel a pendriveot (ha nincs /mnt/usbstick/ könyvtár, akkor azt először létre kell hozni)!
    Pl:
    mkdir /mnt/usbstick
    mount -t vfat /dev/sdb1 /mnt/usbstick
  • Mountoljuk fel az iso fájl tartalmát (ha nincs /mnt/cdrom/ könyvtár, akkor azt először létre kell hozni)!
    Pl:
    mkdir /mnt/cdrom
    mount /tmp/systemrescuecd-x86-1.3.5.iso /mnt/cdrom -o loop
  • Másoljuk a fájlokat a CD-ről a pendrivera!
    Pl:
    cp -af /mnt/cdrom/* /mnt/usbstick/
    rm -rf /mnt/usbstick/syslinux
    mv /mnt/usbstick/isolinux/isolinux.cfg /mnt/usbstick/isolinux/syslinux.cfg
    mv /mnt/usbstick/isolinux /mnt/usbstick/syslinux
  • Lecsatoljuk a pendriveot és bootolhatóvá tesszük
    Pl:
    umount /mnt/usbstick/
    syslinux /dev/sdb1
    sync
  • A CD image-et is lecsatoljuk, már nincs rá szükség
    Pl: umount /mnt/cdrom/
  • Ezzel egy syslinuxos SystemRescueCd-t kaptunk pendriveon, amivel már be lehetne bootolni.
    Változtassuk meg a boot managert Grubra...

  • Mountoljuk fel a pendriveot!
    Pl: mount -t vfat /dev/sdb1 /mnt/usbstick
  • Hozzuk létre a grub könyvtárat!
    Pl: mkdir -p /mnt/usbstick/boot/grub
  • Másoljuk fel a pendrive megfelelő könyvtárába a grub fájljait (igazából nem kell mind, de elférnek..).
    Nálam ezek a /usr/lib/grub/i386-pc/ könyvtárban találhatók:
    Pl: cp /usr/lib/grub/i386-pc/* /mnt/usbstick/boot/grub
  • Készítsünk egy menu.lst fájlt a Grubnak:
    Pl: cat > /mnt/usbstick/boot/grub/menu.lst
    # Alapertekek:
    timeout 5
    default 0
    color light-blue/black light-cyan/blue

    # (0) System Rescue CD
    title SystemRescueCd 32bit
    kernel (hd0,0)/syslinux/rescuecd setkmap=us docache lowmem
    initrd (hd0,0)/syslinux/initram.igz

    [ctrl-d]
  • Válasszuk le a a pendriveot!
    Pl: umount /mnt/usbstick
  • További menüket (szokásosan felmountolt pendrive esetén) a /mnt/usbstick/syslinux/syslinux.cfg fájl tanulmányozásával készíthetünk.

  • Bootoljunk be a pendriveról (BIOS-ban USB-HDD) és installáljuk a Grubot az MBR-be a syslinux helyére!
    (Miután bebootolt pendriveról a rendszer -feltételezve, hogy merevlemezünk a hd0, pendrive pedig hd1):
    grub
    root (hd1,0)
    setup (hd1)
    quit

Kész (de én is mire bepötyögtem)...

Felettébb hasznos. Lehet, hogy nekilátok és csinálok magamnak egyet én is.

Sokan használják az Ubuntu USBs verzióját és ezt a SysRescCD-t.
Amin még morfondíroztam, hogy csinálok multi boot-ot ebből a kettőből USBre.

Nekem elsősorban labor klónozásra kell. Ez NTFS partíció zsugorítást, új particiók kialakitását, formattálást, hálózat konfigot, majd udpcast segítségével adatküldést (no meg fogadást) és grub konfigot jelent. Ezt mind tudja a SysRescCD, sőt.
Ha a pendrive gyökerébe teszel egy autorun (vagy autorun1, autorun2..) szkriptet, akkor azt szépen lefuttatja a boot végén.
Innentől a lehetőségek korlátlanok..