Syslinux (Italiano)

From ArchWiki
Revision as of 09:26, 2 August 2012 by Hilinus (Talk | contribs) (Tabella partizioni in formato MBR)

Jump to: navigation, search

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary text Template:Article summary end

Tango-preferences-desktop-locale.pngThis article or section needs to be translated.Tango-preferences-desktop-locale.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in Talk:Syslinux (Italiano)#)

Syslinux è una collezione di boot loaders capaci di effettuare il boot da dischi rigidi, CD e via rete utilizzando PXE. Supporta i filesystems fat, ext2, ext3, ext4 e btrfs.

Nota: A partire dalla versione 4, Syslinux ed Extlinux sono la stessa cosa.
Nota: Ad oggi, Syslinux non supporta UEFI. Secondo gli sviluppatori, il supporto potrebbe prima o poi essere aggiunto, ma non ci sono tempistiche precise in merito all'adozione.

Il processo di boot di Syslinux

  1. Caricamento del MBR. Durante la fase di boot, il computer legge il contenuto del MBR (/usr/lib/syslinux/mbr.bin.
  2. Ricerca della partizione attiva. Il MBR identifica la partizione contrassegnata come attiva (ossia avente la cosiddetta "boot flag").
  3. Esecuzione del Volume Boot Record. Il Volume Boot Record (VBR) viene eseguito una volta trovato. Se si usano partizioni ext2/3/4 o fat16/32, il settore d'inizio di ldlinux.sys è hardcoded nel VBR
  4. Esecuzione di ldlinux.sys. Viene eseguito il VBR (ldlinux.sys). Se la posizione di ldlinux.sys cambia, Syslinux non sarà più in grado di effettuare il boot. Nel caso si usino partizioni btrfs il processo di cui sopra non funzionerà, poichè i files si muovono continuamente modificando così il settore dove ldlinux.sys risiede. Per questo motivo, l'intero codice di Syslinux dovrà essere scritto fuori dal filesystem, ovvero nei settori seguenti al VBR.
  5. Ricerca del file di configurazione. Una volta che Syslinux è stato caricato, viene cercato uno tra i seguenti fils di configurazione: extlinux.conf o syslinux.cfg.
  6. Caricamento del file di configurazione. Se un file valido è stato trovato, allora viene caricato in memoria, altrimenti verrà visualizzato il prompt di Syslinux.

Installazione

Installazione automatica

Lo script syslinux-install_update si occuperà dell'installazione di Syslinux, della copia dei moduli COM32 in /boot/syslinux, dell'impostazione della flag di boot e dell'installazione nel MBR. Può gestire schemi di partizionamento MBR e GPT e RAID software.

1. Si installi syslinux:

# pacman -S syslinux

2. Assicurarsi che /boot sia montata: 3. Si esegua lo script syslinux-install_update -i (installa) -a (imposta la boot flag) -m (installa nel MBR):

/usr/sbin/syslinux-install_update -iam

4. Si modifichi /boot/syslinux/syslinux.cfg.

Installazione manuale

Nota: Se non si è sicuri dello schema di partizionamento utilizzato (MBR o GPT), si starà probabilmente utilizzando MBR. Nella maggior parte dei casi, GPT creerà una partizione MBR speciale (avente tipo 0xEE) usando l'intera capacità del disco.

Tale partizione è visualizzabile con:

fdisk -l /dev/sda

o, in alternativa:

sgdisk -l /dev/sda
visualizzerà "GPT: not present" se il disco non usa GPT.
Nota: Se si sta cercando di ripristinare il sistema tramite LiveCD, ci si assicuri di effettuare il chroot prima di eseguire i comandi che seguono. Se non si effettua il chroot, sarà necessario aggiungere il punto di mount a tutti i percorsi specificati sotto (tranne quelli che iniziano con /dev.

Assicurarsi di aver installato il pacchetto syslinux, quindi installare Syslinux nella propria partizione di boot, che deve avere filesystem fat, ext2, ext3, ext4 o btrfs. L'installazione deve avvenire in una directory montata, e non su /dev/sdXY. Non è necessario installarlo nella root directory di un file system: se ad esempio si ha la partizione /dev/sda1 montata su /boot, è possibile installare Syslinux nella directory syslinux:

mkdir /boot/syslinux
extlinux --install /boot/syslinux

Tabella partizioni in formato MBR

Sarà quindi necessario contrassegnare la propria partizione di boot come attiva: fdisk, cfdisk, sfdisk e (g)parted sono applicazioni in grado di compiere questa operazione.

Una volta effettuata l'operazione, la tabella partizioni dovrebbe essere simile alla seguente:

fdisk -l /dev/sda
[...]
  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      104447       51200   83  Linux
/dev/sda2          104448   625142447   312519000   83  Linux

Si installi Syslinux nel MBR:

dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr.bin of=/dev/sda
Nota: Il MBR alternativo non funziona bene in Syslinux 4.05, poichè invoca sempre la prima partizione disponibile. Il bug è stato sistemato dal seguente commit.

Syslinux offre inoltre un MBR alternativo: altmbr.bin. Quest'ultimo non effettua la ricerca di una partizione avviabile, ma fa riferimento all'ultimo byte del MBR per ricavare la partizione dalla quale effettuare il boot. Ecco un esempio di utilizzo:

printf '\x5' | cat /usr/lib/syslinux/altmbr.bin - | dd bs=440 count=1 iflag=fullblock conv=notrunc of=/dev/sda

In questo caso, un singolo byte avente valore 5 viene inserito alla fine del file altmbr.bin e i 440 byte risultanti vengono scritti nel MBR del disco /dev/sda.

Syslinux è stato quindi installato nella prima partizione logica (/dev/sda5) del disco.

Tabella partizioni in formato GPT

Si faccia riferimento a GUID Partition Table.

È necessario impostare il bit 2 degli attributi relativi alla partizione /boot:

sgdisk /dev/sda --attributes=1:set:2

Così facendo, si rende il dispositivo avviabile.

Verificare che l'operazione sia stata eseguita correttamente:

sgdisk /dev/sda --attributes=1:show
1:2:1 (legacy BIOS bootable)

Installazione nel MBR:

dd bs=440 conv=notrunc count=1 if=/usr/lib/syslinux/gptmbr.bin of=/dev/sda

Riavvio

Se si riavvia il sistema ora, si otterà il prompt di Syslinux poichè è necessario creare un file di configurazione per ottenere un menù di boot.