Difference between revisions of "Syslinux (Italiano)"
m (→Configurazione di base) |
(→Missing Operating System) |
||
(40 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Boot loaders (Italiano)]] | [[Category:Boot loaders (Italiano)]] | ||
[[en:Syslinux]] | [[en:Syslinux]] | ||
+ | [[es:Syslinux]] | ||
[[tr:Syslinux]] | [[tr:Syslinux]] | ||
[[zh-CN:Syslinux]] | [[zh-CN:Syslinux]] | ||
Line 10: | Line 11: | ||
{{Article summary end}} | {{Article summary end}} | ||
− | Syslinux è una collezione di boot loaders capaci di effettuare il boot da dischi rigidi, CD e via rete utilizzando PXE. Supporta i filesystems | + | [[Wikipedia:SYSLINUX|Syslinux]] è una collezione di boot loaders capaci di effettuare il boot da dischi rigidi, CD e via rete utilizzando PXE. Supporta i filesystems [[Wikipedia:FAT]], [[Wikipedia:ext2]], [[Wikipedia:ext3]], [[Wikipedia:ext4]] e [[Wikipedia:Btrfs]]. |
− | |||
− | |||
− | |||
==Il processo di boot di Syslinux== | ==Il processo di boot di Syslinux== | ||
− | # '''Caricamento del MBR'''. Durante la fase di boot, il computer legge il contenuto del [[Master Boot Record (Italiano)|MBR]] ({{ic|/usr/lib/syslinux/mbr.bin}}. | + | # '''Caricamento del MBR'''. Durante la fase di boot, il computer legge il contenuto del [[Master Boot Record (Italiano)|MBR]] ({{ic|/usr/lib/syslinux/mbr.bin}}). |
# '''Ricerca della partizione attiva'''. Il MBR identifica la partizione contrassegnata come attiva (ossia avente la cosiddetta "boot flag"). | # '''Ricerca della partizione attiva'''. Il MBR identifica la partizione contrassegnata come attiva (ossia avente la cosiddetta "boot flag"). | ||
− | # '''Esecuzione del Volume Boot Record'''. Il Volume Boot Record (VBR) viene eseguito una volta trovato. Se si usano partizioni ext2/3/4 o | + | # '''Esecuzione del Volume Boot Record'''. Il Volume Boot Record (VBR) viene eseguito una volta trovato. Se si usano partizioni ext2/3/4 o FAT12/16/32, il settore d'inizio di {{ic|ldlinux.sys}} è ''hardcoded'' nel VBR |
# '''Esecuzione di ldlinux.sys'''. Viene eseguito il VBR ({{ic|ldlinux.sys}}). Se la posizione di {{ic|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 {{ic|ldlinux.sys}} risiede. Per questo motivo, l'intero codice di Syslinux dovrà essere scritto fuori dal filesystem, ovvero nei settori seguenti al VBR. | # '''Esecuzione di ldlinux.sys'''. Viene eseguito il VBR ({{ic|ldlinux.sys}}). Se la posizione di {{ic|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 {{ic|ldlinux.sys}} risiede. Per questo motivo, l'intero codice di Syslinux dovrà essere scritto fuori dal filesystem, ovvero nei settori seguenti al VBR. | ||
# '''Ricerca del file di configurazione'''. Una volta che Syslinux è stato caricato, viene cercato uno tra i seguenti fils di configurazione: {{ic|extlinux.conf}} o {{ic|syslinux.cfg}}. | # '''Ricerca del file di configurazione'''. Una volta che Syslinux è stato caricato, viene cercato uno tra i seguenti fils di configurazione: {{ic|extlinux.conf}} o {{ic|syslinux.cfg}}. | ||
Line 25: | Line 23: | ||
==Installazione== | ==Installazione== | ||
+ | |||
+ | Si [[Pacman (Italiano)|installi]] {{Pkg|syslinux}} dai [[Official Repositories (Italiano)|repository ufficiali]]. | ||
+ | |||
+ | Se la propria partizione di boot è formattata in FAT, sarà necessario installare anche {{Pkg|mtools}}. | ||
+ | |||
+ | {{Nota| | ||
+ | * A partire dalla versione 4, Syslinux ed Extlinux sono la stessa cosa. | ||
+ | * Il supporto ad UEFI è stato aggiunto a partire dalle versioni 6.x. Si veda [[UEFI_Bootloaders#SYSLINUX 6.xx]] per ulteriori informazioni. | ||
+ | * È necessario utilizzare {{Pkg|gptfdisk}} per avvalersi del supporto a [[Wikipedia:GUID_Partition_Table|GPT]]. | ||
+ | }} | ||
===Installazione automatica=== | ===Installazione automatica=== | ||
− | Lo script {{ic|syslinux-install_update}} si occuperà dell'installazione di Syslinux, della copia/creazione link simbolici per i moduli {{ic|*.c32}} in {{ic|/boot/syslinux}}, dell'impostazione della flag di boot e dell'installazione de boot code nel MBR. Può gestire schemi di partizionamento MBR e GPT e RAID software. | + | Lo script {{ic|syslinux-install_update}} si occuperà dell'installazione di Syslinux, della copia/creazione link simbolici per i moduli {{ic|*.c32}} in {{ic|/boot/syslinux}}, dell'impostazione della flag di boot e dell'installazione de boot code nel MBR. Può gestire schemi di partizionamento [[Master Boot Record (Italiano)|MBR]] e [[GUID Partition Table|GPT]] e RAID software. |
− | 1. Si | + | :1. Se si utilizza una partizione di boot separata, assicurarsi che sia montata. Si controlli con {{ic|lsblk}}; se non si vede nessun mount point che punta a {{ic|/boot}}, si monti la partizione prima di procedere. |
− | + | :2.Si esegua lo script {{ic|syslinux-install_update}} con gli argomenti {{ic|-i}} (installa i files) {{ic|-a}} (imposta la partizione come "attiva") {{ic|-m}} (installa il boot code nel MBR): | |
− | + | # syslinux-install_update -i -a -m | |
− | |||
− | + | :3. Si modifichi {{ic|/boot/syslinux/syslinux.cfg}}. | |
− | |||
− | |||
===Installazione manuale=== | ===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. | + | {{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 {{ic|0xEE}}) usando l'intera capacità del disco. |
Tale partizione è visualizzabile con: | Tale partizione è visualizzabile con: | ||
# fdisk -l /dev/sda | # fdisk -l /dev/sda | ||
− | o, in alternativa: | + | : o, in alternativa: |
− | # sgdisk - | + | # sgdisk -p /dev/sda |
− | visualizzerà "GPT: not present" se il disco non usa GPT.}} | + | : visualizzerà "GPT: not present" se il disco non usa GPT.}} |
− | + | * Se si sta cercando di ripristinare il sistema tramite LiveCD, ci si assicuri di effettuare il [[chroot|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 {{ic|/dev}}. | + | Se non si effettua il chroot, sarà necessario aggiungere il punto di mount a tutti i percorsi specificati sotto (tranne quelli che iniziano con {{ic|/dev}}. |
− | + | La partizione di boot dove si intende installare Syslinux deve avere filesystem fat, ext2, ext3, ext4 o btrfs. L'installazione deve avvenire in una directory montata, e non su {{ic|/dev/sdXY}}. Non è necessario installarlo nella root directory di un file system: se ad esempio si ha la partizione {{ic|/dev/sda1}} montata su {{ic|/boot}}, è possibile installare Syslinux nella directory {{ic|syslinux}}: | |
# mkdir /boot/syslinux | # mkdir /boot/syslinux | ||
# extlinux --install /boot/syslinux | # extlinux --install /boot/syslinux | ||
+ | |||
+ | I comandi di cui sopra assumono che la partizione in questione abbia un filesystem ext[2,3,4]. Se la partizione è formattata in FAT, sarà necessario utilizzare il comando {{ic|syslinux}}. | ||
====Tabella partizioni in formato MBR==== | ====Tabella partizioni in formato MBR==== | ||
+ | |||
+ | {{Box||Si faccia riferimento a: [[Master Boot Record (Italiano)|Master Boot Record]]|#E5E5FF|#FCFCFC}} | ||
Sarà quindi necessario contrassegnare la propria partizione di boot come attiva: {{ic|fdisk}}, {{ic|cfdisk}}, {{ic|sfdisk}} e {{ic|gparted}} sono applicazioni in grado di compiere questa operazione. | Sarà quindi necessario contrassegnare la propria partizione di boot come attiva: {{ic|fdisk}}, {{ic|cfdisk}}, {{ic|sfdisk}} e {{ic|gparted}} sono applicazioni in grado di compiere questa operazione. | ||
Line 78: | Line 87: | ||
# dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr.bin of=/dev/sda | # dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr.bin of=/dev/sda | ||
− | |||
− | |||
Syslinux offre inoltre un MBR alternativo: {{ic|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: | Syslinux offre inoltre un MBR alternativo: {{ic|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: | ||
Line 91: | Line 98: | ||
====Tabella partizioni in formato GPT==== | ====Tabella partizioni in formato GPT==== | ||
− | Si faccia riferimento a [[GUID Partition Table]] | + | {{Box||Si faccia riferimento a: [[GUID Partition Table]]|#E5E5FF|#FCFCFC}} |
È necessario impostare il bit 2 degli attributi relativi alla partizione {{ic|/boot}}: | È necessario impostare il bit 2 degli attributi relativi alla partizione {{ic|/boot}}: | ||
Line 107: | Line 114: | ||
# dd bs=440 conv=notrunc count=1 if=/usr/lib/syslinux/gptmbr.bin of=/dev/sda | # dd bs=440 conv=notrunc count=1 if=/usr/lib/syslinux/gptmbr.bin of=/dev/sda | ||
+ | |||
+ | Se il comando di cui sopra non funziona è possibile provare ad utilizzare: | ||
+ | |||
+ | # syslinux-install_update -i -m | ||
====Riavvio==== | ====Riavvio==== | ||
Line 117: | Line 128: | ||
Il bootloader controllerà l'esistenza del file {{ic|syslinux.cfg}} (preferito) o {{ic|extlinux.conf}}. | Il bootloader controllerà l'esistenza del file {{ic|syslinux.cfg}} (preferito) o {{ic|extlinux.conf}}. | ||
− | + | {{Suggerimento| | |
* È 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. | * È 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. | * Il valore {{ic|TIMEOUT}} è in unità da un decimo di secondo. | ||
+ | }} | ||
===Esempi=== | ===Esempi=== | ||
Line 131: | Line 143: | ||
Configurazione: | Configurazione: | ||
− | {{ | + | {{hc|/boot/syslinux/syslinux.cfg| |
<nowiki> | <nowiki> | ||
PROMPT 1 | PROMPT 1 | ||
Line 154: | Line 166: | ||
APPEND root='''UUID='''978e3e81-8048-4ae1-8a06-aa727458e8ff ro | APPEND root='''UUID='''978e3e81-8048-4ae1-8a06-aa727458e8ff ro | ||
+ | |||
+ | Se si usa il sistema di cifratura [[LUKS|LUKS]], si modifichi la riga {{ic|APPEND}} affinchè Syslinux utilizzi il volume criptato: | ||
+ | APPEND root=/dev/mapper/''gruppo''-''nome'' cryptdevice=/dev/sda2:''nome'' ro | ||
+ | |||
+ | Se si utilizza un [[Wikipedia:RAID]] software attraverso [http://neil.brown.name/blog/mdadm mdadm], si modifichi la linea {{ic|APPEND}} in modo da comprendere gli array del vostro RAID. | ||
+ | |||
+ | Nell'esempio che segue vengono utilizzati tre array in RAID 1 e impostato quello corretto come root: | ||
+ | |||
+ | APPEND root=/dev/md1 ro md=0,/dev/sda2,/dev/sdb2 md=1,/dev/sda3,/dev/sdb3 md=2,/dev/sda4,/dev/sdb4 | ||
+ | |||
+ | Se si riscontrano problemi con il boot da una partizione situata su un raid software usando il metodo di cui sopra, si provino ad utilizzare le etichette delle partizioni: | ||
+ | |||
+ | APPEND root=LABEL=ETICHETTA_PARTIZIONE_ROOT ro | ||
====Menù testuale==== | ====Menù testuale==== | ||
Line 167: | Line 192: | ||
Configurazione: | Configurazione: | ||
− | {{ | + | {{hc|/boot/syslinux/syslinux.cfg| |
<nowiki> | <nowiki> | ||
UI menu.c32 | UI menu.c32 | ||
Line 190: | Line 215: | ||
}} | }} | ||
− | Per ulteriori dettagli sul menù, si veda http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=blob;f=doc/menu.txt. | + | Per ulteriori dettagli sul menù, si veda [http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=blob;f=doc/menu.txt la documentazione di Syslinux]. |
====Menù grafico==== | ====Menù grafico==== | ||
Line 202: | Line 227: | ||
# ln -s /usr/lib/syslinux/vesamenu.c32 /boot/syslinux/ | # ln -s /usr/lib/syslinux/vesamenu.c32 /boot/syslinux/ | ||
− | [ | + | [https://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. |
+ | |||
+ | Per essere certi che il sistema si avvii con questo file di configurazione, assicurarsi che lo stesso si riferisca alla partizione corretta | ||
Configurazione: | Configurazione: | ||
− | {{ | + | {{hc|/boot/syslinux/syslinux.cfg| |
<nowiki> | <nowiki> | ||
UI vesamenu.c32 | UI vesamenu.c32 | ||
Line 263: | Line 290: | ||
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: | 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: | ||
− | {{ | + | {{hc|/boot/syslinux/syslinux.cfg| |
+ | <nowiki> | ||
LABEL windows | LABEL windows | ||
MENU LABEL Windows | MENU LABEL Windows | ||
Line 303: | Line 331: | ||
Se [[GRUB2 (Italiano)|GRUB2]] è installato nella propria partizione di boot, è possibile effettuarne il chainload utilizzando: | Se [[GRUB2 (Italiano)|GRUB2]] è installato nella propria partizione di boot, è possibile effettuarne il chainload utilizzando: | ||
− | {{ | + | {{hc|/boot/syslinux/syslinux.cfg| |
+ | <nowiki> | ||
LABEL grub2 | LABEL grub2 | ||
MENU LABEL Grub2 | MENU LABEL Grub2 | ||
Line 309: | Line 338: | ||
append file=../grub/boot.img | append file=../grub/boot.img | ||
</nowiki>}} | </nowiki>}} | ||
+ | |||
+ | ===Chainloading di un altro sistema Linux=== | ||
+ | |||
+ | Quando si effettua il chainloading di un bootloader come quello di Windows, non ci sono problemi, in quanto si dispone di un bootloader da avviare, mentre Syslinux è in grado di caricare files che risiedono sulla stessa partizione del file di configurazione. Se quindi si ha un'altra versione di Linux installata su una partizione differente e senza {{ic|/boot}} separata, è necessario utilizzare Extlinux. In poche parole, è possibile installare quest'ultimo sul superblocco della partizione per poi essere richiamato dal Syslinux installato nel MBR. | ||
+ | |||
+ | Le seguenti istruzioni presuppongono che si sia già installato Syslinux, che il path al file di configurazione sia {{ic|/boot/syslinux}} e che la distribuzione di cui effettuare il chainload risieda su {{ic|/dev/sda3}}. | ||
+ | |||
+ | Una volta avviata la distribuzione che Syslinux avvia di default, si monti la partizione di root dell'altra distribuzione su un mount point a piacere. In questo esempio si utilizzerà {{ic|/mnt}}; si noti che se si usa una partizione di boot separata sarà necessario montarla: l'esempio assume che questa sia {{ic|/dev/sda2}}. | ||
+ | |||
+ | # mount /dev/sda3 /mnt | ||
+ | # mount /dev/sda2 /mnt/boot (necessario solamente per /boot separata) | ||
+ | |||
+ | Si installi Extlinux e si copino i moduli {{ic|*.c32}} necesari: | ||
+ | |||
+ | # extlinux -i /mnt/boot/syslinux | ||
+ | # cp /usr/lib/syslinux/{chain,menu}.c32 /mnt/boot/syslinux | ||
+ | |||
+ | Si crei {{ic|/mnt/boot/syslinux/syslinux.cfg}} (segue esempio): | ||
+ | |||
+ | {{hc| | ||
+ | /boot/syslinux/syslinux.cfg '''su /dev/sda3''' | ||
+ | |<nowiki> | ||
+ | timeout 10 | ||
+ | ui menu.c32 | ||
+ | |||
+ | label Other Linux | ||
+ | linux /boot/vmlinuz-linux | ||
+ | initrd /boot/initramfs-linux.img | ||
+ | append root=/dev/sda3 ro quiet | ||
+ | |||
+ | label MAIN | ||
+ | com32 chain.c32 | ||
+ | append hd0 0 | ||
+ | </nowiki>}} | ||
+ | |||
+ | Tratta dalla [[User:Djgera|pagina utente]] di Djgera. | ||
===Usare memtest=== | ===Usare memtest=== | ||
− | + | Si installi {{Pkg|memtest86+}} dai [[Official Repositories (Italiano)|repository ufficiali]]. | |
− | {{ | + | Si utilizzi questa sezione {{ic|LABEL}} per effettuare il boot di memtest. |
+ | |||
+ | {{hc|/boot/syslinux/syslinux.cfg| | ||
<nowiki> | <nowiki> | ||
LABEL memtest | LABEL memtest | ||
Line 324: | Line 391: | ||
===HDT=== | ===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}}. | + | [http://hdt-project.org/ 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}} | + | 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}} e si aggiunga quanto segue al proprio file di configurazione: |
− | {{ | + | {{hc|/boot/syslinux/syslinux.cfg| |
<nowiki> | <nowiki> | ||
LABEL hdt | LABEL hdt | ||
Line 339: | Line 406: | ||
Si usino le seguenti sezioni per riavviare o spegnere la macchina: | Si usino le seguenti sezioni per riavviare o spegnere la macchina: | ||
− | {{ | + | {{hc|/boot/syslinux/syslinux.cfg| |
<nowiki> | <nowiki> | ||
LABEL reboot | LABEL reboot | ||
Line 369: | Line 436: | ||
# mv us.{,k}map | # mv us.{,k}map | ||
# keytab-lilo de > de.ktl | # keytab-lilo de > de.ktl | ||
+ | |||
+ | L'ultimo comando dovrà essere eseguito come root, altrimenti non funzionerà. | ||
Si copi {{ic|de.ktl}} in {{ic|/boot/syslinux}} e si imposti il proprietario a {{ic|root}}: | Si copi {{ic|de.ktl}} in {{ic|/boot/syslinux}} e si imposti il proprietario a {{ic|root}}: | ||
Line 377: | Line 446: | ||
KEYMAP de.ktl | KEYMAP de.ktl | ||
+ | |||
+ | ===Nascondere il menu=== | ||
+ | |||
+ | Si utilizzi l'opzione {{hc|/boot/syslinux/syslinuxcfg|MENU HIDDEN}} per nascondere il menu e visualizzare solamente il timeout. Si prema un tasto qualsiasi per mostrarlo nuovamente. | ||
==Risoluzione dei problemi== | ==Risoluzione dei problemi== | ||
− | ===Syslinux | + | ===Utilizzare il prompt di Syslinux=== |
È 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: | È 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: | ||
Line 390: | Line 463: | ||
boot: ../vmlinuz-linux root=/dev/sda2 ro initrd=../initramfs-linux.img | 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: | + | Se non si ha accesso a {{ic|boot:}} in [[Ramdisk|ramfs]] e si è quindi impossibilitati ad effettuare il boot del kernel, si proceda come segue: |
− | 1 | + | :1. Si crei una directory temporanea per montare la propria partizione root (se non esiste già): |
# mkdir -p /new_root | # mkdir -p /new_root | ||
− | 2 | + | :2. Si monti {{ic|/}} in {{ic|/new_root}} (Se boot è si una partizione separata, si dovrà montare anche quest'ultima): |
+ | |||
+ | {{Nota|Busybox non può montare {{ic|/boot}} se quest'ultima si trova su una partizione ext2 dedicata.}} | ||
# mount /dev/sd[a-z][1-9] /new_root | # mount /dev/sd[a-z][1-9] /new_root | ||
− | 3 | + | :3. Si utilizzi {{ic|vim}} e si modifichi il proprio {{ic|syslinux.cfg}} secondo le proprie preferenze e si salvi. |
+ | |||
+ | :4. Riavviare. | ||
+ | |||
+ | ===Il fsck fallisce sulla partizione root=== | ||
+ | |||
+ | Nell'eventualità di una partizione root corrotta (con danni al journal) si monti il filesystem di root nella shell di emergenza del ramfs: | ||
+ | |||
+ | # mount /dev/''partizione root'' /new_root; ## Si monti la partizione root | ||
+ | |||
+ | Procurarsi l'eseguibile tune2fs dalla partizione root (non è incluso in syslinux): | ||
+ | |||
+ | # cp /new_root/sbin/tune2fs /sbin/; | ||
− | + | Si seguano quindi le [[Fsck#ext2fs : no external journal|seguenti]] istruzioni per creare un nuovo journal per la partizione root. | |
===DEFAULT o UI non trovati=== | ===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: | + | 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 {{Pkg|dosfstools}}: |
− | |||
# mkfs.dosfs -F 16 /dev/sda1 | # mkfs.dosfs -F 16 /dev/sda1 | ||
Poi si installi e configuri Syslinux. | 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: | 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: | ||
Line 428: | Line 514: | ||
Si riavvii quindi il sistema. | Si riavvii quindi il sistema. | ||
+ | |||
+ | È possibile ottenere questo errore anche se si prova ad effettuare il boot da un array [[RAID (Italiano)|RAID]] {{ic|md1}} creato con una versione dei metadata non supportata da Syslinux. A partire da Agosto 2013, {{Pkg|mdadm}} crea un array con la versione metadata {{ic|1.2}}, mentre Syslinux supporta solo la {{ic|1.0}}. Sarà quindi necessario ricreare il proprio array RAID passando l'opzione {{ic|1=--metadata=1.0}} a {{ic|mdadm}}. | ||
===Viene eseguito Windows al posto di Syslinux!=== | ===Viene eseguito Windows al posto di Syslinux!=== | ||
Line 448: | Line 536: | ||
# rm /boot/syslinux/ldlinux.sys | # rm /boot/syslinux/ldlinux.sys | ||
− | ===Viene visualizzato un quadretto bianco nell'angolo in alto a sinistra dello schermo quando | + | ===Viene visualizzato un quadretto bianco nell'angolo in alto a sinistra dello schermo quando si sta usando vesamenu=== |
+ | |||
+ | Problema: | ||
− | + | ''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: | 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: | ||
Line 459: | Line 549: | ||
* Il [http://www.syslinux.org/ sito] del progetto Syslinux. | * Il [http://www.syslinux.org/ sito] del progetto Syslinux. | ||
+ | * [http://www.josephn.net/scrapbook/pxelinux_stuff configurazione di PXELinux] |
Revision as of 10:17, 13 August 2013
zh-CN:SyslinuxTemplate:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary text Template:Article summary end
Syslinux è una collezione di boot loaders capaci di effettuare il boot da dischi rigidi, CD e via rete utilizzando PXE. Supporta i filesystems Wikipedia:FAT, Wikipedia:ext2, Wikipedia:ext3, Wikipedia:ext4 e Wikipedia:Btrfs.
Contents
- 1 Il processo di boot di Syslinux
- 2 Installazione
- 3 Configurazione
- 4 Risoluzione dei problemi
- 4.1 Utilizzare il prompt di Syslinux
- 4.2 Il fsck fallisce sulla partizione root
- 4.3 DEFAULT o UI non trovati
- 4.4 Missing Operating System
- 4.5 Viene eseguito Windows al posto di Syslinux!
- 4.6 Le voci del menù non hanno effetto
- 4.7 Impossibile rimuovere ldlinux.sys
- 4.8 Viene visualizzato un quadretto bianco nell'angolo in alto a sinistra dello schermo quando si sta usando vesamenu
- 5 Vedere anche
Il processo di boot di Syslinux
- Caricamento del MBR. Durante la fase di boot, il computer legge il contenuto del MBR (
/usr/lib/syslinux/mbr.bin
). - Ricerca della partizione attiva. Il MBR identifica la partizione contrassegnata come attiva (ossia avente la cosiddetta "boot flag").
- Esecuzione del Volume Boot Record. Il Volume Boot Record (VBR) viene eseguito una volta trovato. Se si usano partizioni ext2/3/4 o FAT12/16/32, il settore d'inizio di
ldlinux.sys
è hardcoded nel VBR - Esecuzione di ldlinux.sys. Viene eseguito il VBR (
ldlinux.sys
). Se la posizione dildlinux.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 doveldlinux.sys
risiede. Per questo motivo, l'intero codice di Syslinux dovrà essere scritto fuori dal filesystem, ovvero nei settori seguenti al VBR. - Ricerca del file di configurazione. Una volta che Syslinux è stato caricato, viene cercato uno tra i seguenti fils di configurazione:
extlinux.conf
osyslinux.cfg
. - Caricamento del file di configurazione. Se un file valido è stato trovato, allora viene caricato in memoria, altrimenti verrà visualizzato il prompt di Syslinux.
Installazione
Si installi syslinux dai repository ufficiali.
Se la propria partizione di boot è formattata in FAT, sarà necessario installare anche mtools.
- A partire dalla versione 4, Syslinux ed Extlinux sono la stessa cosa.
- Il supporto ad UEFI è stato aggiunto a partire dalle versioni 6.x. Si veda UEFI_Bootloaders#SYSLINUX 6.xx per ulteriori informazioni.
- È necessario utilizzare gptfdisk per avvalersi del supporto a GPT.
Installazione automatica
Lo script syslinux-install_update
si occuperà dell'installazione di Syslinux, della copia/creazione link simbolici per i moduli *.c32
in /boot/syslinux
, dell'impostazione della flag di boot e dell'installazione de boot code nel MBR. Può gestire schemi di partizionamento MBR e GPT e RAID software.
- 1. Se si utilizza una partizione di boot separata, assicurarsi che sia montata. Si controlli con
lsblk
; se non si vede nessun mount point che punta a/boot
, si monti la partizione prima di procedere.
- 2.Si esegua lo script
syslinux-install_update
con gli argomenti-i
(installa i files)-a
(imposta la partizione come "attiva")-m
(installa il boot code nel MBR):
# syslinux-install_update -i -a -m
- 3. Si modifichi
/boot/syslinux/syslinux.cfg
.
Installazione manuale
0xEE
) usando l'intera capacità del disco.
Tale partizione è visualizzabile con:
# fdisk -l /dev/sda
- o, in alternativa:
# sgdisk -p /dev/sda
- visualizzerà "GPT: not present" se il disco non usa GPT.
- 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
.
La partizione di boot dove si intende installare Syslinux 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
I comandi di cui sopra assumono che la partizione in questione abbia un filesystem ext[2,3,4]. Se la partizione è formattata in FAT, sarà necessario utilizzare il comando syslinux
.
Tabella partizioni in formato MBR
Sarà quindi necessario contrassegnare la propria partizione di boot come attiva: fdisk
, cfdisk
, sfdisk
e gparted
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
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
È 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
Se il comando di cui sopra non funziona è possibile provare ad utilizzare:
# syslinux-install_update -i -m
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
.
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.
root
, e non quella di /boot
.Configurazione:
/boot/syslinux/syslinux.cfg
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 la riga APPEND inserendo l'UUID della propria partizione root:
APPEND root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ro
Se si usa il sistema di cifratura LUKS, si modifichi la riga APPEND
affinchè Syslinux utilizzi il volume criptato:
APPEND root=/dev/mapper/gruppo-nome cryptdevice=/dev/sda2:nome ro
Se si utilizza un Wikipedia:RAID software attraverso mdadm, si modifichi la linea APPEND
in modo da comprendere gli array del vostro RAID.
Nell'esempio che segue vengono utilizzati tre array in RAID 1 e impostato quello corretto come root:
APPEND root=/dev/md1 ro md=0,/dev/sda2,/dev/sdb2 md=1,/dev/sda3,/dev/sdb3 md=2,/dev/sda4,/dev/sdb4
Se si riscontrano problemi con il boot da una partizione situata su un raid software usando il metodo di cui sopra, si provino ad utilizzare le etichette delle partizioni:
APPEND root=LABEL=ETICHETTA_PARTIZIONE_ROOT 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:
/boot/syslinux/syslinux.cfg
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 la documentazione di Syslinux.
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.
Per essere certi che il sistema si avvii con questo file di configurazione, assicurarsi che lo stesso si riferisca alla partizione corretta
Configurazione:
/boot/syslinux/syslinux.cfg
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:
/boot/syslinux/syslinux.cfg
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.
Se non si è sicuri di quale drive venga identificato dal vostro BIOS come primo, è possibile utilizzare l'identificativo MBR oppure, se si usa GPT, l'etichetta del filesystem. Per utilizzare l'identificativo MBR si utilizzi il comando:
# fdisk -l /dev/sdb Disk /dev/sdb: 128.0 GB, 128035676160 bytes 255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xf00f1fd3 Device Boot Start End Blocks Id System /dev/sdb1 2048 4196351 2097152 7 HPFS/NTFS/exFAT /dev/sdb2 4196352 250066943 122935296 7 HPFS/NTFS/exFAT
sostituendo /dev/sdb
all'identificativo del drive del quale si vuole effettuare il chainload. Utilizzando il valore esadecimale reperibile in Disk identifier:
, la sintassi del syslinux.cfg
sarà:
LABEL windows MENU LABEL Windows COM32 chain.c32 APPEND mbr:0xf00f1fd3
Per ulteriori dettagli sul chainloading si veda: [1].
Se GRUB2 è installato nella propria partizione di boot, è possibile effettuarne il chainload utilizzando:
/boot/syslinux/syslinux.cfg
LABEL grub2 MENU LABEL Grub2 COM32 chain.c32 append file=../grub/boot.img
Chainloading di un altro sistema Linux
Quando si effettua il chainloading di un bootloader come quello di Windows, non ci sono problemi, in quanto si dispone di un bootloader da avviare, mentre Syslinux è in grado di caricare files che risiedono sulla stessa partizione del file di configurazione. Se quindi si ha un'altra versione di Linux installata su una partizione differente e senza /boot
separata, è necessario utilizzare Extlinux. In poche parole, è possibile installare quest'ultimo sul superblocco della partizione per poi essere richiamato dal Syslinux installato nel MBR.
Le seguenti istruzioni presuppongono che si sia già installato Syslinux, che il path al file di configurazione sia /boot/syslinux
e che la distribuzione di cui effettuare il chainload risieda su /dev/sda3
.
Una volta avviata la distribuzione che Syslinux avvia di default, si monti la partizione di root dell'altra distribuzione su un mount point a piacere. In questo esempio si utilizzerà /mnt
; si noti che se si usa una partizione di boot separata sarà necessario montarla: l'esempio assume che questa sia /dev/sda2
.
# mount /dev/sda3 /mnt # mount /dev/sda2 /mnt/boot (necessario solamente per /boot separata)
Si installi Extlinux e si copino i moduli *.c32
necesari:
# extlinux -i /mnt/boot/syslinux # cp /usr/lib/syslinux/{chain,menu}.c32 /mnt/boot/syslinux
Si crei /mnt/boot/syslinux/syslinux.cfg
(segue esempio):
/boot/syslinux/syslinux.cfg su /dev/sda3
timeout 10 ui menu.c32 label Other Linux linux /boot/vmlinuz-linux initrd /boot/initramfs-linux.img append root=/dev/sda3 ro quiet label MAIN com32 chain.c32 append hd0 0
Tratta dalla pagina utente di Djgera.
Usare memtest
Si installi memtest86+ dai repository ufficiali.
Si utilizzi questa sezione LABEL
per effettuare il boot di memtest.
/boot/syslinux/syslinux.cfg
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
e si aggiunga quanto segue al proprio file di configurazione:
/boot/syslinux/syslinux.cfg
LABEL hdt MENU LABEL Hardware Info COM32 hdt.c32
Riavvio e spegnimento
Si usino le seguenti sezioni per riavviare o spegnere la macchina:
/boot/syslinux/syslinux.cfg
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
L'ultimo comando dovrà essere eseguito come root, altrimenti non funzionerà.
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
Si utilizzi l'opzione
/boot/syslinux/syslinuxcfg
MENU HIDDENper nascondere il menu e visualizzare solamente il timeout. Si prema un tasto qualsiasi per mostrarlo nuovamente.
Risoluzione dei problemi
Utilizzare il prompt di Syslinux
È 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):
/boot
se quest'ultima si trova su una partizione ext2 dedicata.# mount /dev/sd[a-z][1-9] /new_root
- 3. Si utilizzi
vim
e si modifichi il propriosyslinux.cfg
secondo le proprie preferenze e si salvi.
- 4. Riavviare.
Il fsck fallisce sulla partizione root
Nell'eventualità di una partizione root corrotta (con danni al journal) si monti il filesystem di root nella shell di emergenza del ramfs:
# mount /dev/partizione root /new_root; ## Si monti la partizione root
Procurarsi l'eseguibile tune2fs dalla partizione root (non è incluso in syslinux):
# cp /new_root/sbin/tune2fs /sbin/;
Si seguano quindi le seguenti istruzioni per creare un nuovo journal per la partizione root.
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 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:
# syslinux-install_update -iam
Si riavvii quindi il sistema.
È possibile ottenere questo errore anche se si prova ad effettuare il boot da un array RAID md1
creato con una versione dei metadata non supportata da Syslinux. A partire da Agosto 2013, mdadm crea un array con la versione metadata 1.2
, mentre Syslinux supporta solo la 1.0
. Sarà quindi necessario ricreare il proprio array RAID passando l'opzione --metadata=1.0
a mdadm
.
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
Problema:
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.
- configurazione di PXELinux