Difference between revisions of "Syslinux (Italiano)"

From ArchWiki
Jump to: navigation, search
m (Tabella partizioni in formato MBR)
Line 1: Line 1:
 
[[Category:Boot loaders]]
 
[[Category:Boot loaders]]
 +
[[en:Syslinux]]
 
[[tr:Syslinux]]
 
[[tr:Syslinux]]
 
[[zh-CN:Syslinux]]
 
[[zh-CN:Syslinux]]
Line 8: Line 9:
 
{{Article summary text|{{Boot process overview (Italiano)}}}}
 
{{Article summary text|{{Boot process overview (Italiano)}}}}
 
{{Article summary end}}
 
{{Article summary end}}
 
{{Translateme}}
 
  
 
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.
 
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.
Line 113: Line 112:
  
 
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.
 
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.
 +
 +
==Configurazione==
 +
 +
Il file di configurazione di Syslinux, {{ic|syslinux.cfg}}, dovrebbe essere creato nella stesa directory dove risiede Syslinux che nel nostro caso corrisponde a: {{ic|/boot/syslinux}}.
 +
Il bootloader controllerà l'esistenza del file {{ic|syslinux.cfg}} (preferito) o {{ic|extlinux.conf}}.
 +
 +
'''Consigli:'''
 +
* È possibile usare la keyword {{ic|LINUX}} al posto di {{ic|KERNEL}}. La differenza è che {{ic|KERNEL}} cerca di identificare il tipo di file, mentre {{ic|LINUX}} si aspetta un kernel Linux come parametro.
 +
* Il valore {{ic|TIMEOUT}} è in unità da un decimo di secondo.
 +
 +
===Esempi===
 +
 +
====Configurazione di base====
 +
 +
Di seguito viene presentato un semplice file di configurazione che visualizza il prompt {{ic|boot:}} ed esegue il boot automaticamente dopo 5 secondi.
 +
 +
{{Nota|La partizione in questione dovrà essere la propria {{ic|root}}, e non quella di {{ic|/boot}}.}}.
 +
 +
Configurazione:
 +
 +
{{bc|
 +
<nowiki>
 +
PROMPT 1
 +
TIMEOUT 50
 +
DEFAULT arch
 +
 +
LABEL arch
 +
        LINUX ../vmlinuz-linux
 +
        APPEND root=/dev/sda2 ro
 +
        INITRD ../initramfs-linux.img
 +
 +
LABEL archfallback
 +
        LINUX ../vmlinuz-linux
 +
        APPEND root=/dev/sda2 ro
 +
        INITRD ../initramfs-linux-fallback.img
 +
</nowiki>
 +
}}
 +
 +
Se si desidera effettuare automaticamente il boot senza visualizzare il prompt, si imposti {{ic|PROMPT}} a {{ic|0}}.
 +
 +
Se si desidera usare gli [[Persistent block device naming (Italiano)#by-uuid|UUID]] per la nomenclatura persistende dei dispositivi a blocchi si modifichi:
 +
 +
APPEND root=/dev/sda2 ro
 +
 +
in:
 +
 +
APPEND root=UUID=<uuid qui> ro
 +
 +
====Menù testuale====
 +
 +
Syslinux consente di utilizzare un menù testuale. Per utilizzarlo si copi il modulo COM32 {{ic|menu}} nella propria directory di Syslinux:
 +
 +
# cp /usr/lib/syslinux/menu.c32 /boot/syslinux/
 +
 +
Se {{ic|/boot}} si trova nella stessa partizione di {{ic|/usr}}, basterà utilizzare un link simbolico:
 +
 +
# ln -s /usr/lib/syslinux/menu.c32 /boot/syslinux/
 +
 +
Configurazione:
 +
 +
{{bc|
 +
<nowiki>
 +
UI menu.c32
 +
PROMPT 0
 +
 +
MENU TITLE Boot Menu
 +
TIMEOUT 50
 +
DEFAULT arch
 +
 +
LABEL arch
 +
        MENU LABEL Arch Linux
 +
        LINUX ../vmlinuz-linux
 +
        APPEND root=/dev/sda2 ro
 +
        INITRD ../initramfs-linux.img
 +
 +
LABEL archfallback
 +
        MENU LABEL Arch Linux Fallback
 +
        LINUX ../vmlinuz-linux
 +
        APPEND root=/dev/sda2 ro
 +
        INITRD ../initramfs-linux-fallback.img
 +
</nowiki>
 +
}}
 +
 +
Per ulteriori dettagli sul menù, si veda http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=blob;f=doc/menu.txt.
 +
 +
====Menù grafico====
 +
 +
È disponibile un menù grafico. Per utilizzarlo, si copi il modulo COM32 {{ic|vesamenu}} nella propria directory di Syslinux:
 +
 +
# cp /usr/lib/syslinux/vesamenu.c32 /boot/syslinux/
 +
 +
Se {{ic|/boot}} si trova nella stessa partizione di {{ic|/usr}}, basterà utilizzare un link simbolico:
 +
 +
# ln -s /usr/lib/syslinux/vesamenu.c32 /boot/syslinux/
 +
 +
[http://projects.archlinux.org/archiso.git/tree/configs/releng/syslinux Questo] file di configurazione utilizza la stessa impostazione grafica del CD di installazione di Arch Linux. Lo sfondo è disponibile allo stesso indirizzo.
 +
 +
Configurazione:
 +
 +
{{bc|
 +
<nowiki>
 +
UI vesamenu.c32
 +
DEFAULT arch
 +
PROMPT 0
 +
MENU TITLE Boot Menu
 +
MENU BACKGROUND splash.png
 +
TIMEOUT 50
 +
 +
MENU WIDTH 78
 +
MENU MARGIN 4
 +
MENU ROWS 5
 +
MENU VSHIFT 10
 +
MENU TIMEOUTROW 13
 +
MENU TABMSGROW 11
 +
MENU CMDLINEROW 11
 +
MENU HELPMSGROW 16
 +
MENU HELPMSGENDROW 29
 +
 +
# Refer to http://www.syslinux.org/wiki/index.php/Comboot/menu.c32
 +
 +
MENU COLOR border      30;44  #40ffffff #a0000000 std
 +
MENU COLOR title        1;36;44 #9033ccff #a0000000 std
 +
MENU COLOR sel          7;37;40 #e0ffffff #20ffffff all
 +
MENU COLOR unsel        37;44  #50ffffff #a0000000 std
 +
MENU COLOR help        37;40  #c0ffffff #a0000000 std
 +
MENU COLOR timeout_msg  37;40  #80ffffff #00000000 std
 +
MENU COLOR timeout      1;37;40 #c0ffffff #00000000 std
 +
MENU COLOR msg07        37;40  #90ffffff #a0000000 std
 +
MENU COLOR tabmsg      31;40  #30ffffff #00000000 std
 +
 +
 +
LABEL arch
 +
        MENU LABEL Arch Linux
 +
        LINUX ../vmlinuz-linux
 +
        APPEND root=/dev/sda2 ro
 +
        INITRD ../initramfs-linux.img
 +
 +
 +
LABEL archfallback
 +
        MENU LABEL Arch Linux Fallback
 +
        LINUX ../vmlinuz-linux
 +
        APPEND root=/dev/sda2 ro
 +
        INITRD ../initramfs-linux-fallback.img
 +
</nowiki>
 +
}}
 +
 +
Dalla versione 3.84 di Syslinux, {{ic|vesamenu.c32}} supporta il parametro {{ic|MENU RESOLUTION $LARGHEZZA $ALTEZZA}}. Per utilizzarlo, si inserisca ad esempio {{ic|MENU RESOLUTION 1440 900}} nel proprio file di configurazione. Si noti tuttavia che l'immagine di sfondo dovrà essere della stessa risoluzione, altrimenti Syslinux si rifiuterà di caricare il menù.
 +
 +
===Boot automatico===
 +
 +
Se non si desidera visualizzare il menù di Syslinux ed effettuare direttamente il boot, si commentino tutti i comandi contenenti la direttiva {{ic|UI}} e ci si assicuri che il parametro {{ic|DEFAULT}} esista nel proprio {{ic|syslinux.cfg}}.
 +
 +
===Chainloading===
 +
 +
Se si desidera effettuare il chainload di altri sistemi operativi (ad esempio Windows) o altri bootloader, si copi (o si utilizzi un link simbolico, se possibile) il modulo {{ic|chain.c32}} nella directory di Syslinux (per i dettagli si consulti la sezione precedente). Si crei quindi la seguente sezione nel file di configurazione:
 +
 +
{{bc|
 +
<nowiki>
 +
LABEL windows
 +
        MENU LABEL Windows
 +
        COM32 chain.c32
 +
        APPEND hd0 3
 +
</nowiki>
 +
}}
 +
 +
{{ic|hd0 3}} rappresenta la terza partizione del primo disco identificato dal BIOS. I dischi sono contati partendo da zero, mentre le partizioni da uno. Per ulteriori dettagli sul chainloading si veda: [http://syslinux.zytor.com/wiki/index.php/Comboot/chain.c32].
 +
 +
Se [[GRUB2 (Italiano)|GRUB2]] è installato nella propria partizione di boot, è possibile effettuarne il chainload utilizzando:
 +
 +
{{bc|
 +
<nowiki>
 +
LABEL grub2
 +
      MENU LABEL Grub2
 +
      COM32 chain.c32
 +
      append file=../grub/boot.img
 +
</nowiki>
 +
}}
 +
 +
===Usare memtest===
 +
 +
Si utilizzi questa sezione {{ic|LABEL}} per effettuare il boot di memtest. (Si installi il pacchetto {{Pkg|memtest86+}}):
 +
 +
{{bc|
 +
<nowiki>
 +
LABEL memtest
 +
        MENU LABEL Memtest86+
 +
        LINUX ../memtest86+/memtest.bin
 +
</nowiki>
 +
}}
 +
 +
===HDT===
 +
 +
HDT (Hardware Detection Tool) è uno strumento per visualizzare informazioni sull'hardware. Come sempre, il rispettivo modulo {{ic|.c32}} dovrà essere copiato (o si dovrà creare un link simbolico) in {{ic|/boot/syslinux}}.
 +
Per i dispositivi PCI, si copi o si crei un link simbolico da {{ic|/usr/share/hwdata/pci.ids}} a {{ic|/boot/syslinux/pci.ids}}.
 +
 +
{{bc|
 +
<nowiki>
 +
LABEL hdt
 +
        MENU LABEL Hardware Info
 +
        COM32 hdt.c32
 +
</nowiki>
 +
}}
 +
 +
===Riavvio e spegnimento===
 +
 +
Si usino le seguenti sezioni per riavviare o spegnere la macchina:
 +
 +
{{bc|
 +
<nowiki>
 +
LABEL reboot
 +
        MENU LABEL Reboot
 +
        COM32 reboot.c32
 +
 +
LABEL poweroff
 +
        MENU LABEL Power Off
 +
        COMBOOT poweroff.com
 +
</nowiki>
 +
}}
 +
 +
===Menù pulito===
 +
 +
Per pulire lo schermo dopo l'uscita dal menù, si aggiunga la seguente riga al file di configurazione:
 +
 +
MENU CLEAR
 +
 +
===Mappatura tastiera===
 +
 +
Se si necessita di modificare continuamente i propri parametri di boot, si potrebbe voler cambiare la mappatura della tastaera, affinchè risulti più facile inserire i caratteri {{ic|1==}}, {{ic|/}} ed altri su una tastiera non americana.
 +
 +
Innanzitutto si deve creare una mappatura compatibile (nell'esempio si utilizzerà quella tedesca):
 +
 +
cp /usr/share/kbd/keymaps/i386/qwerty/us.map.gz ./
 +
cp /usr/share/kbd/keymaps/i386/qwertz/de.map.gz ./
 +
gunzip {de,us}.map.gz
 +
mv de.{,k}map
 +
mv us.{,k}map
 +
keytab-lilo de > de.ktl
 +
 +
Si copi {{ic|de.ktl}} in {{ic|/boot/syslinux}} e si imposti il proprietario a {{ic|root}}:
 +
 +
chown root:root /boot/syslinux/de.ktl
 +
 +
Ora si modifichi il proprio {{ic|syslinux.conf}} aggiungendo:
 +
 +
KEYMAP de.ktl
 +
 +
==Risoluzione dei problemi==
 +
 +
===Syslinux visualizza solo il Prompt!===
 +
 +
È possiblie scrivere il valore del parametro {{ic|LABEL}} corrispondente al sistema operativo che si vuole eseguire. Se si sono utilizzate le configurazioni d'esempio, si scriva:
 +
 +
boot: arch
 +
 +
Se si ottiene un errore di caricamento del file di configurazione, èp possibile passare manualmente i parametri di boot:
 +
 +
boot: ../vmlinuz-linux root=/dev/sda2 ro initrd=../initramfs-linux.img
 +
 +
Se non si ha accesso a {{ic|boot:}} in ramfs e si è quindi impossibilitati ad effettuare il boot del kernel, si proceda come segue:
 +
 +
1) Si crei una directory temporanea per montare la propria partizione root (se non esiste già):
 +
 +
mkdir -p /new_root
 +
 +
2) Si monti {{ic|/}} in {{ic|/new_root}} (Se boot è si una partizione separata, si dovrà montare anche quest'ultima):
 +
 +
mount /dev/sd[a-z][1-9] /new_root
 +
 +
3) Si utilizzi {{ic|vim}} e si modifichi il proprio {{ic|syslinux.cfg}} secondo le proprie preferenze e si salvi.
 +
 +
4) Riavviare.
 +
 +
===DEFAULT o UI non trovati===
 +
 +
Alcuni produttori di schede madri non hanno un buon supporto al boot da dispositivi USB. Se, ad esempio, un drive USB formattato in Ext4 potrebbe bootare tranquillamente su un PC più recente, macchine più vecchie potrebbero bloccarsi se la partizione di boot contenente kernel e initrd non si trova  su una partizione FAT16. Per ovviare al problema, si crei una partizione FAT16 (con dimensione minore o uguale a 2GB) e la si formatti con:
 +
 +
pacman -S dosfstools
 +
mkfs.dosfs -F 16 /dev/sda1
 +
 +
Poi si installi e configuri Syslinux.
 +
 +
===MISSING OPERATING SYSTEM===
 +
 +
Se si ottiene questo messaggio, si controlli se la partizione di {{ic|/boot}} ha la flag di boot attiva. In caso affermativo, probabilmente la partizione inizia al settore 1 invece che al 63 o al 2048. Si controlli con {{ic|fdisk -l}}. Se inizia al settore 1, si sposti la partizione con gparted da un disco di ripristino. Se si ha una partizione {{ic|/boot}} separata, si effettui il backup con:
 +
 +
cp -a /boot /boot.bak
 +
 +
E si effettui il boot con il disco di installazione di Arch. Si usi poi {{ic|cfdisk}} per cancellare la partizione di {{ic|/boot}} e la si ricrei: ora dovrebbe iniziare al settore giusto (63). Si montino quindi le proprie partizioni e si effettui il chroot nel sistema Arch installato su disco, come descritto nella Beginners guide. Si ripristini il backup di {{ic|/boot}} con:
 +
 +
cp -a /boot.bak/* /boot
 +
 +
Si controlli se {{ic|/etc/fstab}} è corretto e poi si esegua:
 +
 +
/usr/sbin/syslinux-install_update -iam
 +
 +
Si riavvii quindi il sistema.
 +
 +
===Viene eseguito Windows al posto di Syslinux!===
 +
 +
'''Soluzione:''' Assicurarsi che la partizione di {{ic|/boot}} abbia la flag di boot attiva e che quella di Windows non la abbia. Si veda la sezione "Installazione" di questo articolo per ulteriori dettagli.
 +
 +
Il MBR che fornisce Syslinux cerca la prima partizione attiva ad avere la flag di boot abilitata, quindi è probabile che quella di Windows sia stata trovata per prima e che avesse la flag di boot attiva. Se lo si desidera, è possbiile utilizzare anche il MBR fornito da Windows o MS-DOS fdisk.
 +
 +
===Le voci del menù non hanno effetto===
 +
 +
Se si seleziona una voce del menù di boot e non succede niente a parte il ricaricamento dello stesso, è probabile che si abbia un errore nel proprio {{ic|syslinux.cfg}}. Si prema {{Keypress|tab}} per modificare i propri parametri di boot. In alternativa si prema {{Keypress|esc}} e si scriva il valore del parametro {{ic|LABEL}} corrispondente al sistema da avviare (ad esempio {{ic|arch}}).
 +
 +
===Impossibile rimuovere ldlinux.sys===
 +
 +
Il file {{ic|ldlinux.sys}} ha l'attributo ''immutable'' impostato, che ne impedisce la rimozione o sovrascrittura. Questo comportamento si verifica poichè il settore sul quale risiede il file in questione non deve cambiare, altrimenti Syslinux dovrà essere reinstallato.
 +
 +
Per rimuovere il file si esegua:
 +
 +
# chattr -i /boot/syslinux/ldlinux.sys
 +
# rm /boot/syslinux/ldlinux.sys
 +
 +
===Viene visualizzato un quadretto bianco nell'angolo in alto a sinistra dello schermo quando un kernel viene con il modesetting e si sta usando vesamenu===
 +
 +
'''Brain0''' dice: ''A partire da linux-3.0, il driver del modesetting tenta di mantenere il contenuto corrente dello schermo dopo il cambio di risoluzione (o almeno questo si verifica sulla mia Intel, quando utilizzo Syslinux in modalità testuale). Pare che tale comportamento crei problemi se si usa il modulo vesamenu di Syslinux (il quadrato bianco rappresenta infatti un tentativo di salvare il menù di Syslinux, ma il driver non riesce a catturare l'immagine dalla modalità grafica VESA)''.
 +
 +
Se si è scelta una risoluzione personalizzata e si utilizza vesamenu assieme al modesetting, si provi ad inserire la seguente riga nel {{ic|syslinux.cfg}} per rimuovere il quadretto bianco e continuare il boot in modalità grafica:
 +
 +
APPEND root=/dev/sda6 ro 5 '''vga=current''' quiet splash
 +
 +
==Vedere anche==
 +
 +
* Il [http://www.syslinux.org/ sito] del progetto Syslinux.

Revision as of 10:54, 2 August 2012

Summary help replacing me
Descrive l'installazione e la configurazione di Syslinux, una collezione di bootloaders.
Overview
Template:Boot process overview (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.

Configurazione

Il file di configurazione di Syslinux, syslinux.cfg, dovrebbe essere creato nella stesa directory dove risiede Syslinux che nel nostro caso corrisponde a: /boot/syslinux. Il bootloader controllerà l'esistenza del file syslinux.cfg (preferito) o extlinux.conf.

Consigli:

  • È possibile usare la keyword LINUX al posto di KERNEL. La differenza è che KERNEL cerca di identificare il tipo di file, mentre LINUX si aspetta un kernel Linux come parametro.
  • Il valore TIMEOUT è in unità da un decimo di secondo.

Esempi

Configurazione di base

Di seguito viene presentato un semplice file di configurazione che visualizza il prompt boot: ed esegue il boot automaticamente dopo 5 secondi.

Nota: La partizione in questione dovrà essere la propria root, e non quella di /boot.
.

Configurazione:


PROMPT 1
TIMEOUT 50
DEFAULT arch

LABEL arch
        LINUX ../vmlinuz-linux
        APPEND root=/dev/sda2 ro
        INITRD ../initramfs-linux.img

LABEL archfallback
        LINUX ../vmlinuz-linux
        APPEND root=/dev/sda2 ro
        INITRD ../initramfs-linux-fallback.img

Se si desidera effettuare automaticamente il boot senza visualizzare il prompt, si imposti PROMPT a 0.

Se si desidera usare gli UUID per la nomenclatura persistende dei dispositivi a blocchi si modifichi:

APPEND root=/dev/sda2 ro

in:

APPEND root=UUID=<uuid qui> ro

Menù testuale

Syslinux consente di utilizzare un menù testuale. Per utilizzarlo si copi il modulo COM32 menu nella propria directory di Syslinux:

# cp /usr/lib/syslinux/menu.c32 /boot/syslinux/

Se /boot si trova nella stessa partizione di /usr, basterà utilizzare un link simbolico:

# ln -s /usr/lib/syslinux/menu.c32 /boot/syslinux/

Configurazione:


UI menu.c32
PROMPT 0

MENU TITLE Boot Menu
TIMEOUT 50
DEFAULT arch

LABEL arch
        MENU LABEL Arch Linux
        LINUX ../vmlinuz-linux
        APPEND root=/dev/sda2 ro
        INITRD ../initramfs-linux.img

LABEL archfallback
        MENU LABEL Arch Linux Fallback
        LINUX ../vmlinuz-linux
        APPEND root=/dev/sda2 ro
        INITRD ../initramfs-linux-fallback.img

Per ulteriori dettagli sul menù, si veda http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=blob;f=doc/menu.txt.

Menù grafico

È disponibile un menù grafico. Per utilizzarlo, si copi il modulo COM32 vesamenu nella propria directory di Syslinux:

# cp /usr/lib/syslinux/vesamenu.c32 /boot/syslinux/

Se /boot si trova nella stessa partizione di /usr, basterà utilizzare un link simbolico:

# ln -s /usr/lib/syslinux/vesamenu.c32 /boot/syslinux/

Questo file di configurazione utilizza la stessa impostazione grafica del CD di installazione di Arch Linux. Lo sfondo è disponibile allo stesso indirizzo.

Configurazione:


UI vesamenu.c32
DEFAULT arch
PROMPT 0
MENU TITLE Boot Menu
MENU BACKGROUND splash.png
TIMEOUT 50

MENU WIDTH 78
MENU MARGIN 4
MENU ROWS 5
MENU VSHIFT 10
MENU TIMEOUTROW 13
MENU TABMSGROW 11
MENU CMDLINEROW 11
MENU HELPMSGROW 16
MENU HELPMSGENDROW 29

# Refer to http://www.syslinux.org/wiki/index.php/Comboot/menu.c32

MENU COLOR border       30;44   #40ffffff #a0000000 std
MENU COLOR title        1;36;44 #9033ccff #a0000000 std
MENU COLOR sel          7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel        37;44   #50ffffff #a0000000 std
MENU COLOR help         37;40   #c0ffffff #a0000000 std
MENU COLOR timeout_msg  37;40   #80ffffff #00000000 std
MENU COLOR timeout      1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07        37;40   #90ffffff #a0000000 std
MENU COLOR tabmsg       31;40   #30ffffff #00000000 std


LABEL arch
        MENU LABEL Arch Linux
        LINUX ../vmlinuz-linux
        APPEND root=/dev/sda2 ro
        INITRD ../initramfs-linux.img


LABEL archfallback
        MENU LABEL Arch Linux Fallback
        LINUX ../vmlinuz-linux
        APPEND root=/dev/sda2 ro
        INITRD ../initramfs-linux-fallback.img

Dalla versione 3.84 di Syslinux, vesamenu.c32 supporta il parametro MENU RESOLUTION $LARGHEZZA $ALTEZZA. Per utilizzarlo, si inserisca ad esempio MENU RESOLUTION 1440 900 nel proprio file di configurazione. Si noti tuttavia che l'immagine di sfondo dovrà essere della stessa risoluzione, altrimenti Syslinux si rifiuterà di caricare il menù.

Boot automatico

Se non si desidera visualizzare il menù di Syslinux ed effettuare direttamente il boot, si commentino tutti i comandi contenenti la direttiva UI e ci si assicuri che il parametro DEFAULT esista nel proprio syslinux.cfg.

Chainloading

Se si desidera effettuare il chainload di altri sistemi operativi (ad esempio Windows) o altri bootloader, si copi (o si utilizzi un link simbolico, se possibile) il modulo chain.c32 nella directory di Syslinux (per i dettagli si consulti la sezione precedente). Si crei quindi la seguente sezione nel file di configurazione:


LABEL windows
        MENU LABEL Windows
        COM32 chain.c32
        APPEND hd0 3

hd0 3 rappresenta la terza partizione del primo disco identificato dal BIOS. I dischi sono contati partendo da zero, mentre le partizioni da uno. Per ulteriori dettagli sul chainloading si veda: [1].

Se GRUB2 è installato nella propria partizione di boot, è possibile effettuarne il chainload utilizzando:


LABEL grub2
       MENU LABEL Grub2
       COM32 chain.c32
       append file=../grub/boot.img

Usare memtest

Si utilizzi questa sezione LABEL per effettuare il boot di memtest. (Si installi il pacchetto memtest86+):


LABEL memtest
        MENU LABEL Memtest86+
        LINUX ../memtest86+/memtest.bin

HDT

HDT (Hardware Detection Tool) è uno strumento per visualizzare informazioni sull'hardware. Come sempre, il rispettivo modulo .c32 dovrà essere copiato (o si dovrà creare un link simbolico) in /boot/syslinux. Per i dispositivi PCI, si copi o si crei un link simbolico da /usr/share/hwdata/pci.ids a /boot/syslinux/pci.ids.


LABEL hdt
        MENU LABEL Hardware Info
        COM32 hdt.c32

Riavvio e spegnimento

Si usino le seguenti sezioni per riavviare o spegnere la macchina:


LABEL reboot
        MENU LABEL Reboot
        COM32 reboot.c32

LABEL poweroff
        MENU LABEL Power Off
        COMBOOT poweroff.com

Menù pulito

Per pulire lo schermo dopo l'uscita dal menù, si aggiunga la seguente riga al file di configurazione:

MENU CLEAR

Mappatura tastiera

Se si necessita di modificare continuamente i propri parametri di boot, si potrebbe voler cambiare la mappatura della tastaera, affinchè risulti più facile inserire i caratteri =, / ed altri su una tastiera non americana.

Innanzitutto si deve creare una mappatura compatibile (nell'esempio si utilizzerà quella tedesca):

cp /usr/share/kbd/keymaps/i386/qwerty/us.map.gz ./
cp /usr/share/kbd/keymaps/i386/qwertz/de.map.gz ./
gunzip {de,us}.map.gz
mv de.{,k}map
mv us.{,k}map
keytab-lilo de > de.ktl

Si copi de.ktl in /boot/syslinux e si imposti il proprietario a root:

chown root:root /boot/syslinux/de.ktl

Ora si modifichi il proprio syslinux.conf aggiungendo:

KEYMAP de.ktl

Risoluzione dei problemi

Syslinux visualizza solo il Prompt!

È possiblie scrivere il valore del parametro LABEL corrispondente al sistema operativo che si vuole eseguire. Se si sono utilizzate le configurazioni d'esempio, si scriva:

boot: arch

Se si ottiene un errore di caricamento del file di configurazione, èp possibile passare manualmente i parametri di boot:

boot: ../vmlinuz-linux root=/dev/sda2 ro initrd=../initramfs-linux.img

Se non si ha accesso a boot: in ramfs e si è quindi impossibilitati ad effettuare il boot del kernel, si proceda come segue:

1) Si crei una directory temporanea per montare la propria partizione root (se non esiste già):

mkdir -p /new_root

2) Si monti / in /new_root (Se boot è si una partizione separata, si dovrà montare anche quest'ultima):

mount /dev/sd[a-z][1-9] /new_root

3) Si utilizzi vim e si modifichi il proprio syslinux.cfg secondo le proprie preferenze e si salvi.

4) Riavviare.

DEFAULT o UI non trovati

Alcuni produttori di schede madri non hanno un buon supporto al boot da dispositivi USB. Se, ad esempio, un drive USB formattato in Ext4 potrebbe bootare tranquillamente su un PC più recente, macchine più vecchie potrebbero bloccarsi se la partizione di boot contenente kernel e initrd non si trova su una partizione FAT16. Per ovviare al problema, si crei una partizione FAT16 (con dimensione minore o uguale a 2GB) e la si formatti con:

pacman -S dosfstools
mkfs.dosfs -F 16 /dev/sda1

Poi si installi e configuri Syslinux.

MISSING OPERATING SYSTEM

Se si ottiene questo messaggio, si controlli se la partizione di /boot ha la flag di boot attiva. In caso affermativo, probabilmente la partizione inizia al settore 1 invece che al 63 o al 2048. Si controlli con fdisk -l. Se inizia al settore 1, si sposti la partizione con gparted da un disco di ripristino. Se si ha una partizione /boot separata, si effettui il backup con:

cp -a /boot /boot.bak

E si effettui il boot con il disco di installazione di Arch. Si usi poi cfdisk per cancellare la partizione di /boot e la si ricrei: ora dovrebbe iniziare al settore giusto (63). Si montino quindi le proprie partizioni e si effettui il chroot nel sistema Arch installato su disco, come descritto nella Beginners guide. Si ripristini il backup di /boot con:

cp -a /boot.bak/* /boot

Si controlli se /etc/fstab è corretto e poi si esegua:

/usr/sbin/syslinux-install_update -iam

Si riavvii quindi il sistema.

Viene eseguito Windows al posto di Syslinux!

Soluzione: Assicurarsi che la partizione di /boot abbia la flag di boot attiva e che quella di Windows non la abbia. Si veda la sezione "Installazione" di questo articolo per ulteriori dettagli.

Il MBR che fornisce Syslinux cerca la prima partizione attiva ad avere la flag di boot abilitata, quindi è probabile che quella di Windows sia stata trovata per prima e che avesse la flag di boot attiva. Se lo si desidera, è possbiile utilizzare anche il MBR fornito da Windows o MS-DOS fdisk.

Le voci del menù non hanno effetto

Se si seleziona una voce del menù di boot e non succede niente a parte il ricaricamento dello stesso, è probabile che si abbia un errore nel proprio syslinux.cfg. Si prema Template:Keypress per modificare i propri parametri di boot. In alternativa si prema Template:Keypress e si scriva il valore del parametro LABEL corrispondente al sistema da avviare (ad esempio arch).

Impossibile rimuovere ldlinux.sys

Il file ldlinux.sys ha l'attributo immutable impostato, che ne impedisce la rimozione o sovrascrittura. Questo comportamento si verifica poichè il settore sul quale risiede il file in questione non deve cambiare, altrimenti Syslinux dovrà essere reinstallato.

Per rimuovere il file si esegua:

# chattr -i /boot/syslinux/ldlinux.sys
# rm /boot/syslinux/ldlinux.sys

Viene visualizzato un quadretto bianco nell'angolo in alto a sinistra dello schermo quando un kernel viene con il modesetting e si sta usando vesamenu

Brain0 dice: A partire da linux-3.0, il driver del modesetting tenta di mantenere il contenuto corrente dello schermo dopo il cambio di risoluzione (o almeno questo si verifica sulla mia Intel, quando utilizzo Syslinux in modalità testuale). Pare che tale comportamento crei problemi se si usa il modulo vesamenu di Syslinux (il quadrato bianco rappresenta infatti un tentativo di salvare il menù di Syslinux, ma il driver non riesce a catturare l'immagine dalla modalità grafica VESA).

Se si è scelta una risoluzione personalizzata e si utilizza vesamenu assieme al modesetting, si provi ad inserire la seguente riga nel syslinux.cfg per rimuovere il quadretto bianco e continuare il boot in modalità grafica:

APPEND root=/dev/sda6 ro 5 vga=current quiet splash

Vedere anche

  • Il sito del progetto Syslinux.