Ripristinare Grub2 da chroot da una Debian Live

 

Il metodo che ho sempre usato, ogni qual volta ho avuto la necessità di ripristinare il bootloader (Grub2), è stato quello del chroot. Ho preso questa abitudine dopo che mi sono accorto un bel po di tempo fa, che spesso ii metodi "normali" non sempre mi funzionavano. Invece questo metodo non ha mai fallito.

 

Requisiti:

Cd live, della stessa architettura del sistema da recuperare.

 

$ sudo fdisk -l
$ sudo mount /dev/sdXX /mnt
$ for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
$ sudo chroot /mnt
# grub-install /dev/sdX
  CTRL-D
$ sudo reboot

 

enjpy 😉

Update-grub da chroot

 

Installando Debian quasi sempre da chroot, ho bisogno di fare un update-grub dalla partizione /dev/sda1 dove è installata Debian Squeeze con Grub (MBR). Chiaramente se sono su Squeeze non c'è nessun problema, ma se invece sono su un'altra partizione, ho bisogno di chroottarmi in Squeeze e dare un update-grub. Per non avere errori bisogna prima montare /dev /sys /proc: Quindi, montare la partizione principale, nel mio caso /dev/sda1, e poi procedere con il mount:

 

# mount /dev/sda1 /mnt/debian
# mount -o bind /dev /mnt/debian/dev
# mount -o bind /sys /mnt/debian/sys
# mount -o bind /proc /mnt/debian/proc
# chroot /mnt/debian /bin/bash
# update-grub
# grub-mkconfig

 

 

enjoy 😉

Velocizzare boot e prestazioni su Debian Squeeze parte 2

 

 

Nella guida precedente ho iniziato a sperimentare la possibilità di velocizzare Debian Squeeze ed LMDE, partendo dalla fase di boot, fino ad arrivare in questa seconda parte ad aumentare, ove possibile, la reattività del sistema. Già con l'installazione di preload si cerca di aumentare la reattività dei programmi usati più spesso, ma per ottenere questo bisogna dare a preload alcune ore di utilizzo, affinche memorizzi le abitudini. Le modifiche successive io le ho testate sul mio sistema, senza problemi, ma ciò non toglie che è meglio stare attenti.

 

atime ed /etc/fstab:

la prima modifica riguarda  /etc/fstab e l'inserimento dell'opzione noatime e nodiratime. Linux di default tende a tenere traccia di tutto quello che si fà, non solo delle modifiche dei file, ma anche della solo lettura, e scrive tutto sul disco. Questo sicuramente è d'obbligo su un server, ma su un pc Desktop secondo me non è necessario. C'è da tenere conto che una minore scrittura, significa anche aumento della durata dell' hard disk. Quindi /etc/fstab dovrebbe essere così:

/dev/sdaxx    /    ext4    rw,noatime,nodiratime,errors=remount-ro    0    0

lo stesso discorso vale per la partizione di /home separata.

 

vm.swappiness:

un'altra modifica che si può fare riguarda /etc/sysctl.conf e cioè andare a modificare il file, ed inserire un valore  a vm.swappiness che andrà a dire al kernel se tenere tutto in Ram oppure nella cache su disco.  Oggi ci si ritrova ad avere tanta Ram che nemmeno si utilizza, quindi cerchiamo di sfruttarla. Di default questo valore in Debian è 60, e la modifica si può fare da 0 a 100, io ho optato per 20. Per chi ha un pc portatile, può essere utile diminuire la scrittura su disco, in quanto la durata della batteria ne gioverebbe.

# echo 'vm.swappiness=20' >> /etc/sysctl.conf

 

vm.vfs_cache_pressure:

anche questa opzione da inserire in /etc/sysctl.conf aiuta a velocizzare il sistema, il valore di default in Debian è 100, si può provare a dimezzarlo:

# echo 'vm.vfs_cache_pressure=50' >> /etc/sysctl.conf

 

per le mie esigenze queste opzioni vanno benissimo e mi ritrovo con un pc veloce e reattivo:

 

Boot=25 secondi circa

Halt=5 secondi circa

 

ps: in LMDE consiglio di rimuovere il mintMenu dal pannello, che è pesantissimo, ed aggiungere la classica Barra del menu di Gnome.

 

enjoy 😉

Info su installazione Debian GNU/kFreeBSD con ZFS

 

Metto nero su bianco qualche informazioni su Debian GNU/kFreeBSD con filesystem ZFS, dato che in rete non è che ci sia tanto, o meglio, non sono in tanti quelli che hanno un installazione su hard disk ed un blog dove condividere l'esperienza. Inizio subito col segnalare che al momento si può installare solo su sistemi a 64bit-amd64.

Download kfreebsd-zfs-amd64

Download ultima versione febbraio 2011

La prima parte dell'installazione procede velocemente, quando si arriva al partizionamento del disco, le cose diventano lentissime. Una volta create le partizioni di  / e swap, l'installer ci metterà circa 4-5 minuti per avviare la finestra di conferma di scrittura dei dati su hard disk, ed altri 6-7 minuti per formattare la partizionie (15G) ed avviare l'installazione del sistema di base. Preciso questo, in quanto nei 2 procedimenti lentissimi sopra elencati, e facile credere che qualcosa sia andato storto e quindi abortire l'installazione, causa anche una ingannevole finestra blu totalmente immobile. Il resto dell'installazione fila liscia, e quando si arriva all'installazione di Grub, bisogna per forza installarlo nel MBR, anche se al riavvio non troveremo più le altre voci dei diversi OS, questo perchè abbiamo bisogno di conoscere l' uuid (il comando blkid non dà l'uuid della partizione zfs), e la partizione zfs da linux non si monta. Una volta avviato Debian GNU/kFreeBSD, montiamo una partizione ext3 (con ext4 non funziona, o comunque io non so come montarla):

identificare la partizione:

$ ls /dev/|grep ^ad

montarla:

# mount -t ext2fs /dev/adXX /mnt

a questo punto copiamo grub.cfg nella partizione ext3

# cp /boot/grub/grub.cfg /mnt/grub.cfg.kfreebsd

adesso non ci rimane che ripristinare da cd live Grub, per riavere tutti i nostri OS, ed una volta avviato dalla nostra distribuzione abituale, possiamo copiare il menuentry del file grub.cfg.kfreebsd in /etc/grub.d/40_custom, e quindi poi fare un update-grub per trovare la voce di Debian GNU/kFreeBSD 8.1-1-amd64 nel menù di Grub.

es: menuentry:

menuentry 'Debian GNU/kFreeBSD, with kFreeBSD 8.1-1-amd64' –class debian –class gnu-kfreebsd –class gnu –class os {
    insmod part_msdos
    insmod zfs
    set root='(hd0,9)'
    search –no-floppy –fs-uuid –set d33229d75b9005cc
    echo            'Loading kernel of FreeBSD 8.1-1-amd64 …'
    kfreebsd        //@/boot/kfreebsd-8.1-1-amd64.gz
    insmod part_msdos
    insmod zfs
    set root='(hd0,9)'
    search –no-floppy –fs-uuid –set d33229d75b9005cc
    kfreebsd_module_elf    //@/lib/modules/8.1-1-amd64/opensolaris.ko
    kfreebsd_module_elf    //@/lib/modules/8.1-1-amd64/zfs.ko
    insmod part_msdos
    insmod zfs
    set root='(hd0,9)'
    search –no-floppy –fs-uuid –set d33229d75b9005cc
    kfreebsd_module        //@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
    set kFreeBSD.vfs.root.mountfrom=zfs:debian-ad0s9
    set kFreeBSD.vfs.root.mountfrom.options=rw
}

 

enjoy 😉

Rilasciato Super GRUB2 Disk 1.98s1

 

 

E' stata appena rilasciato super_grub_disk_hybrid-1.98s1.iso e ci sono diverse novità in questa nuova release, come si può vedere:

  • Updated for the latest stable grub release, 1.98.
  • Single "hybrid" image can be used to make a bootable CD, floppy, or USB drive.
  • Option to find and load loop bootable iso files. Currently supported distributions:
    Grml, Parted Magic, Sidux, Slax Tinycore, Ubuntu, and any distribution that ships with a loopback.cfg ).
  • Option to enable GRUB2's native PATA drivers to work around BIOS bugs/limitations.
  • Option to enable GRUB2's native USB drivers (experimental).
  • Option to list information about devices/partitions.
  • Enabling serial terminal no longer disables console input/output.
  • Better error handling/reporting.
  • Miscellaneous bug fixes.

 

per costruire un iso partendo dal source

$ cd supergrub-1.98s1

$ ./supergrub-mkrescue

Super GRUB2 Disk 1.30

E' stato rilasciato Super Grub2 Disk 1.30 il tool che permette con facilità di avviare la nostra Linuxbox in caso di problemi con Grub2. Le novità rispetto alla versione precedente sono le seguenti:

* Updated for the latest stable grub release, 1.97.2
* Option to find and load grub.cfg
* Option to find and load a grub2 installation ( works even with clobbered mbr )
* Options to enable grub's lvm and raid support
* Option to switch to serial terminal for easier debugging / logging of output
* Miscellaneous bug fixes

Per il downolad dell'iso o del codice sorgente fare riferimento a questa pagina.

Grub2 menu personalizzato

 

Per chi ha diversi O.S installati risulta comodo mettere ordine al menu di Grub2. I passi a proprio rischio e pericolo 🙂 sono i seguenti:

sudo update-grub

editare grub.cfg:

sudo gedit /boot/grub/grub.cfg

a questo punto individuare e copiare solamente i menu che si desidera vedere al boot di Grub2:

Esempio: ( partendo da menuentry e finendo con } )

menuentry "Ubuntu, Linux 2.6.31-17-generic" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    set quiet=1
    insmod ext2
    set root=(hd0,9)
    search –no-floppy –fs-uuid –set eb27469e-03f8-4aa2-9a13-faa3f7689a2e
    linux    /boot/vmlinuz-2.6.31-17-generic root=UUID=eb27469e-03f8-4aa2-9a13-faa3f7689a2e ro   quiet splash
    initrd    /boot/initrd.img-2.6.31-17-generic
}

menuentry "Debian GNU/Linux, con Linux 2.6.32-trunk-686 (on /dev/sda5)" {
    insmod ext2
    set root=(hd0,5)
    search –no-floppy –fs-uuid –set 7bae8193-a97e-44df-86f2-2e9a1c59ff4d
    linux /boot/vmlinuz-2.6.32-trunk-686 root=UUID=7bae8193-a97e-44df-86f2-2e9a1c59ff4d ro quiet
    initrd /boot/initrd.img-2.6.32-trunk-686
}
menuentry "BackTrack 4, kernel 2.6.29.4 (on /dev/sda8)" {
    insmod ext2
    set root=(hd0,8)
    search –no-floppy –fs-uuid –set 2eb5129f-6bca-4e65-a667-52a1e16a44f4
    linux /boot/vmlinuz-2.6.29.4 root=UUID=2eb5129f-6bca-4e65-a667-52a1e16a44f4 ro quiet splash
    initrd /boot/initrd.img-2.6.29.4
}

poi:

sudo chmod -x /etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober

a questo punto:

sudo nano /etc/grub.d/40_custom

ed incollare dentro i menu degli O.S preparati precedentemente.

OBBLIGATORIAMENTE

sudo update-grub

Io personalmente ho eliminato tutti e tre i file in

/etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober

ma questa è una scelta mia personale che porta ad inserire a manina di volta in volta i nuovi kernel. Magari mi pentirò di questa scelta, ma lo scoprirò solo vivendola.