Difference between revisions of "Syslinux (Español)"

From ArchWiki
Jump to: navigation, search
(Instalación manual)
(Arranque automático: Actualizar)
(44 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category:Boot loaders (Español)]]
 
[[Category:Boot loaders (Español)]]
 +
[[el:Syslinux]]
 
[[en:Syslinux]]
 
[[en:Syslinux]]
 +
[[fr:Syslinux]]
 
[[it:Syslinux]]
 
[[it:Syslinux]]
 +
[[ja:Syslinux]]
 
[[tr:Syslinux]]
 
[[tr:Syslinux]]
 
[[zh-CN:Syslinux]]
 
[[zh-CN:Syslinux]]
{{Article summary start|Sumario}}
+
{{Related articles start (Español)}}
{{Article summary text|Describe la instalación y configuración de Syslinux, una colección de bootloaders.}}
+
{{Related|Arch Boot Process (Español)}}
{{Article summary heading|Descripción}}
+
{{Related|Boot Loaders}}
{{Article summary text|Para iniciar Arch Linux, es necesario tener instalado en el [[Master_Boot_Record_(Español)|Master Boot Record (MBR)]] o en la [[GUID_Partition_Table_(Español)|GUID Partition Table (GPT)]] un gestor de arranque compatible con Linux como [[GRUB2_(Español)|GRUB(2)]], '''Syslinux''', [[LILO|LILO]] o [[GRUB_Legacy|GRUB Legacy]]. El gestor de arranque es responsable de cargar el kernel y el [[Mkinitcpio_(Español)|ramdisk inicial]] antes de iniciar el [[Arch_Boot_Process|proceso de arranque]].}}
+
{{Related articles end}}
{{Article summary end}}
+
  
 
[[Wikipedia:es:Syslinux|Syslinux]] es una colección de cargadores de arranque capaz de iniciar desde discos duros, CDs, y vía network utilizando PXE. Soporta sistema de archivos [[Wikipedia:es:Tabla_de_asignación_de_archivos|FAT]], [[Wikipedia:es:Ext2|ext2]], [[Ext3|ext3]], [[Ext4|ext4]] y [[Btrfs]].
 
[[Wikipedia:es:Syslinux|Syslinux]] es una colección de cargadores de arranque capaz de iniciar desde discos duros, CDs, y vía network utilizando PXE. Soporta sistema de archivos [[Wikipedia:es:Tabla_de_asignación_de_archivos|FAT]], [[Wikipedia:es:Ext2|ext2]], [[Ext3|ext3]], [[Ext4|ext4]] y [[Btrfs]].
  
== El proceso de inicio de Syslinux ==
+
{{Nota|
#'''Carga del MBR'''. Durante la fase de arranque, el ordenador lee el contenido del [[MBR]] ({{ic|/usr/lib/syslinux/mbr.bin}}).
+
* Syslinux (a partir de la versión 6.02, tanto para BIOS como para UEFI) no está en condiciones de acceder a los archivos contenidos en una partición diferente de aquella en la cual se ha instalado. Tal característica (llamada multi-fs) deberá ser ahora implementada por los desarrolladores. Si quiere ayudar con la función multi-fs, [http://bugzilla.syslinux.org/show_bug.cgi?id=33 contacte con upstream].
#'''Búsqueda de la partición activa'''. El MBR identifica la partición marcada como activa (boot flag).  
+
* Si se está actualizando Syslinux desde la versión 4.xx (o 5.xx) a la 6.xx, por favor, reinstale (no actualice) manualemente Syslinux BIOS (sin utilizar el script de instalación) siguiendo las indicaciones de la sección [[#Instalación manual]]. El script de instalación proporcionado puede no efectuar la instalación correctamente.
#'''Ejecución del volumen boot record'''. Una vez encontrada la partición, el volumen boot record (VBR) será ejecutado. En el caso de ext2/3/4 y fat12/16/32, el sector de inicio de {{ic|ldlinux.sys}} está codificado en el VBR.
+
}}
#'''Ejecución de ldlinux.sys'''. El VBR ejecutará ({{ic|ldlinux.sys}}). Por lo tanto, si la ubicación de {{ic|ldlinux.sys}} cambia, syslinux no arrancará. (En el caso de usar una partición btrfs, el método anterior no funcionará ya que los archivos se moverán continuamente modificando el sector donde {{ic|ldlinux.sys}} reside. Por este motivo, el código entero de Syslinux debe ser escrito fuera del sistema de archivos. El código se almacena en los sectores posteriores del VBR.)
+
#'''Buscando los archivos de configuración'''. Una vez Syslinux está totalmente cargado, busca un archivo de configuración, ya sea {{ic|extlinux.conf}} o {{ic|syslinux.cfg}}.
+
#'''Cargando los archivos de configuración'''. Si encuentra un archivo válido se cargará. En su defecto, se le advertirá en el prompt de syslinux.
+
  
==Instalación==
+
== Sistemas BIOS ==
[[Pacman (Español)|Instale]] {{Pkg|syslinux}} desde los [[Official Repositories (Español)|repositorios oficiales]]. Si su partición boot es FAT, necesita también {{Pkg|mtools}}.
+
 
 +
=== Proceso de arranque de Syslinux ===
 +
 
 +
#'''Etapa 1:'''
 +
#*'''Fase 1''' - '''Carga del MBR''' - En el arranque del ordenador, la BIOS lee el código de arranque contenido en el [[MBR]], la región de los 440 byte, situada al inicio del disco (donde residen los archivos ({{ic|/usr/lib/syslinux/bios/mbr.bin}} o {{ic|/usr/lib/syslinux/bios/gptmbr.bin}}).
 +
#*'''Fase 2''' - '''Busqueda de la partición activa'''. El '''Stage 1 MBR boot code''' busca la partición marcada como activa (etiqueta «boot» en los discos MBR). En el ejemplo se presume que tal partición corresponde a la que está {{ic|/boot}}.
 +
#'''Etapa 2:'''
 +
#*'''Fase 1''' - '''Ejecución del volume boot record''' - El '''Stage 1 MBR boot code''' ejecuta el Volume Boot Record (VBR) de la partición {{ic|/boot}}. En el caso de syslinux, el VBR boot code está en el inicio del sector definido en el archivo {{ic|/boot/syslinux/ldlinux.sys}} creado con la orden {{ic|extlinux --install}}. Advierta que {{ic|ldlinux.sys}} y {{ic|ldlinux.c32}} no son lo mismo.
 +
#*'''Fase 2''' - '''Ejecución de {{ic|/boot/syslinux/ldlinux.sys}}''' - El VBR cargará el resto del archivo {{ic|/boot/syslinux/ldlinux.sys}}, cuya ubicación en el disco no debe cambiar, de lo contrario syslinux no arrancará. {{Nota|En el caso del sistemas de archivos [[Btrfs]], el método anterior no funcionará ya que los archivos están constantemente moviéndose, de lo que resulta un cambio de la ubicación del archivo {{ic|ldlinux.sys}}. Por lo tanto, en el caso de BTRFS el código completo de {{ic|ldlinux.sys}} estará embebido en el espacio de los 64 KB siguientes al VBR y no vendrá instalado en {{ic|/boot/syslinux/ldlinux.sys}}, a diferencia de otros sistemas de archivos.}}
 +
#'''Etapa 3:'''
 +
#*'''Carga de {{ic|/boot/syslinux/ldlinux.c32}}''' - El archivo {{ic|/boot/syslinux/ldlinux.sys}} cargará {{ic|/boot/syslinux/ldlinux.c32}} (módulo del núcleo) que contiene el resto de la parte del '''núcleo''' de syslinux que no encaja en {{ic|ldlinux.sys}} (debido a las limitaciones respecto al tamaño de archivo). El archivo {{ic|ldlinux.c32}} debe estar presente en todas las instalaciones de syslinux/extlinux y debe coincidir con la versión de {{ic|ldlinux.sys}} instalada en la partición. De lo contrario syslinux no podrá arrancar. Véase http://bugzilla.syslinux.org/show_bug.cgi?id=7 para más información.
 +
#'''Etapa 4:'''
 +
#*'''Localización y carga del archivo de configuración''' - Una vez que Syslinux está completamente cargado, buscará {{ic|/boot/syslinux/syslinux.cfg}} (o {{ic|/boot/syslinux/extlinux.conf}} en algunos casos) y lo cargará, si lo encuentra. Si no lo encuentra, syslinux lanzará el prompt {{ic|boot:}}. El paso descrito y el resto de la parte  '''no principal''' de syslinyux (los módulos ({{ic|/boot/syslinux/*.c32}}, excluyendo los {{ic|lib*.c32}}, y {{ic|ldlinux.c32}}) necesitan la presencia de los módulos {{ic|/boot/syslinux/lib*.c32}} (bibliotecas). Los módulos de las bibliotecas, {{ic|lib*.c32}}, y los módulos no principales, {{ic|*.c32}}, deben coincidir con la versión de {{ic|ldlinux.sys}} instalada en la partición.
 +
 
 +
===Instalación===
 +
[[Pacman (Español)|Instale]] {{Pkg|syslinux}} desde los [[Official Repositories (Español)|repositorios oficiales]].
 +
 
 +
# pacman -S syslinux
  
 
{{Nota|
 
{{Nota|
 
*A partir de Syslinux 4, Extlinux y Syslinux son la misma cosa.
 
*A partir de Syslinux 4, Extlinux y Syslinux son la misma cosa.
*El apoyo inicial a UEFI está presente en la versión 6.00-preXX y está actualmente en fase alpha. Véase [[UEFI_Bootloaders#SYSLINUX]] para obtener más información.}}
+
* {{Pkg|gptfdisk}} es necesario para proporcionar soporte a [[wikipedia:GUID_Partition_Table|GPT]] utilizando el script automático.
===Instalación automática ===
+
* Si su partición boot es FAT, necesita también {{Pkg|mtools}}.
El script {{ic|syslinux-install_update}} se ocupará de la instalación de Syslinux, de la copia/creación del enlace simbólico para el módulo  {{ic|*.c32}} en {{ic|/boot/syslinux}}, de la configuración del flag de arranque y de la instalación del código de arranque en el MBR. Puede gestionar tablas de particiones [[Master Boot Record (Español)|MBR]] y [[GUID Partition Table (Español)|GPT]], junto con RAID software.
+
}}
 +
====Instalación automática ====
 +
{{Nota|El script {{ic|syslinux-install_update}} es un guión específico de Arch, y no es proporcionado/mantenido por los desarrolladores de Syslinux. Por favor, dirija cualquier informe de error específico a Arch Bug Tracker y no a los desarrolladores.}}
 +
 
 +
El script {{ic|syslinux-install_update}} se ocupará de la instalación de Syslinux, de la copia/creación del enlace simbólico para el módulo  {{ic|*.c32}} en {{ic|/boot/syslinux}}, de la configuración de la etiqueta «boot» y de la instalación del código de arranque en el MBR. Puede gestionar tablas de particiones [[Master Boot Record (Español)|MBR]] y [[GUID Partition Table (Español)|GPT]], junto con RAID software.
  
 
:1. Si se utiliza una partición boot separada, asegúrese de que está montada. Compruébelo con {{ic|lsblk}}; si no se ve ningún punto de montaje que indique a {{ic|/boot}}, monte la partición antes de continuar.<br/>
 
:1. Si se utiliza una partición boot separada, asegúrese de que está montada. Compruébelo con {{ic|lsblk}}; si no se ve ningún punto de montaje que indique a {{ic|/boot}}, monte la partición antes de continuar.<br/>
 
:2. Ejecute el script {{ic|syslinux-install_update}} con los siguientes argumentos: {{ic|-i}} (instala los archivos), {{ic|-a}} (marca la partición como ''activa'' con la etiqueta ''boot''), {{ic|-m}} (instala el código de arranque en el ''MBR''):
 
:2. Ejecute el script {{ic|syslinux-install_update}} con los siguientes argumentos: {{ic|-i}} (instala los archivos), {{ic|-a}} (marca la partición como ''activa'' con la etiqueta ''boot''), {{ic|-m}} (instala el código de arranque en el ''MBR''):
 
  # syslinux-install_update -i -a -m
 
  # syslinux-install_update -i -a -m
:3. Modifique {{ic|/boot/syslinux/syslinux.cfg}}.
+
:3. Cree o edite {{ic|/boot/syslinux/syslinux.cfg}} siguiendo las instrucciones de [[#Configuración]].
  
{{Nota|Para que esto funcione con [[GUID Partition Table (Español)|GPT]], el paquete {{pkg|gptfdisk}} es necesario como el backend para configurar el flag del arranque.}}
+
{{Nota|
 +
*Al reiniciar el sistema ahora, se tendrá un prompt de Syslinux. Para arrancar automáticamente el sistema o conseguir un menú de arranque, todavía habrá que crear un archivo de configuración..
 +
* Si acaba de clonar el disco o lo ha montado, por ejemplo sobre {{ic|/mnt/clone}}, instale syslinux emitiéndo la orden desde el soporte de instalación de Arch:
 +
# syslinux-install_update.sh -i -a -m -c /mnt/clone
 +
}}
  
===Instalación manual ===
+
====Instalación manual====
 
{{Nota|
 
{{Nota|
*Si no está seguro de la tabla de particiones utilizada (MBR o GPT), probablemente estará usando la tabla de particiones MBR.  En la mayor parte de los casos GPT creará una partición MBR especial (tipo 0xEE) utilizando toda la capacidad del disco, partición que se muestra con el siguiente comando:
+
* Si no está seguro de la tabla de particiones que está utilizando (MBR o GPT), se puede comprobar con la siguiente orden:
  # fdisk -l /dev/sda
+
  # blkid -s PTTYPE -o value /dev/sda
 +
gpt
  
o, alternativamente:
+
* Si sew está tratando de rescatar un sistema instalado con un live CD, asegúrese de efectuar [[Change_Root (Español)|chroot]] antes de ejecutar las siguientes órdenes. Si no efectúa chroot, será necesario anteponer el punto de montaje a todas las rutas especificadas (salvo las que se inician con {{ic|/dev/}}).
# sgdisk -l /dev/sda
+
}}
  
si la salida muestra el mensaje "GPT: not present" quiere decir que el disco no usa GPT.
+
La partición de arranque, en la que se tiene previsto instalar Syslinux, debe estar formateada con un sistema de archivos FAT, ext2, ext3, ext4, o Btrfs. Se debe instalar sobre un directorio montado (y no sobre una partición {{ic|/dev/sdXY}}). No es necesario instalarlo en el directorio root de un sistema de archivos, por ejemplo, si tenemos la partición {{ic|/dev/sda1}} montada en {{ic|/boot}} es posible instalar Syslinux en el directorio {{ic|syslinux}}:
*Si está tratando de recuperar el sistema instalado con un live CD, asegúrese de entrar como [[Change_Root|chroot]] antes de ejecutar estos comandos. Si no lo hace como chroot, será necesario añadir el punto de montaje a todas las rutas de archivos (excepto las que comienzan con {{ic|/dev/}}).}}
+
  
Asegúrese de tener instalado el paquete {{Pkg|syslinux}}. A continuación instale Syslinux en la partición boot, que debe contener un sistema de archivos fat, ext2, ext3, ext4, o btrfs.
 
La instalación tiene que hacerse sobre un directorio montado, y no sobre una partición {{ic|/dev/sdXY}}. No es necesario instalarlo en el directorio root de un sistema de archivos, por ejemplo, si se ha montado {{ic|/boot}} en la partición {{ic|/dev/sda1}}, es posible instalar syslinux en una carpeta propia que podemos llamar syslinux:
 
 
  # mkdir /boot/syslinux
 
  # mkdir /boot/syslinux
  # extlinux --install /boot/syslinux  
+
# cp -r /usr/lib/syslinux/bios/*.c32 /boot/syslinux/                          ## copy ALL the *.c32 files from /usr/lib/syslinux/bios/, DO NOT SYMLINK
 +
  # extlinux --install /boot/syslinux
  
La orden anterior se basa en el supuesto de que la partición de destino tenga un sistema de archivos ext[234]. Si la partición está formateada en FAT, será necesario utilizar la orden syslinux.
+
Después de esto, instale el código de arranque de Syslinux, ({{ic|mbr.bin}} o {{ic|gptmbr.bin}}), en el Master Boot Record, la región de los 440 byte del disco que alberga el código de arranque (que no se debe confundir con MBR conocida como tabla de particiones msdos).
  
====Tabla de particiones MBR====
+
=====Tabla de particiones MBR=====
 
{{Box||Véase el artículo principal: [[Master Boot Record (Español)]]|#E5E5FF|#FCFCFC}}
 
{{Box||Véase el artículo principal: [[Master Boot Record (Español)]]|#E5E5FF|#FCFCFC}}
Será necesario marcar la partición boot como activa en la tabla de particiones. Las aplicaciones que incluyen la capacidad de hacer la operación descrita son {{ic|fdisk}}, {{ic|cfdisk}}, {{ic|sfdisk}}, {{ic|parted/gparted}}. Debería tener un aspecto como el siguiente:
+
Será necesario marcar la partición boot como activa en la tabla de particiones. Las aplicaciones que incluyen la capacidad de hacer la operación descrita son {{ic|fdisk}}, {{ic|cfdisk}}, {{ic|sfdisk}}, {{ic|parted/gparted}} (etiqueta «boot»). Debería tener un aspecto como el siguiente:
 
{{hc|# fdisk -l /dev/sda|
 
{{hc|# fdisk -l /dev/sda|
 
[...]
 
[...]
Line 64: Line 87:
 
}}
 
}}
  
Instale syslinux en el MBR:
+
Instale Syslinux en el MBR:
  
 
  # 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
Line 75: Line 98:
 
En este caso, un solo byte de valor 5 se inserta en el contenido del archivo {{ic|altmbr.bin}} y los restantes 440 bytes se escriben en el MBR del dispositivo {{ic|sda}}. Syslinux será instalado en la primera partición lógica ({{ic|/dev/sda5}}) del disco.
 
En este caso, un solo byte de valor 5 se inserta en el contenido del archivo {{ic|altmbr.bin}} y los restantes 440 bytes se escriben en el MBR del dispositivo {{ic|sda}}. Syslinux será instalado en la primera partición lógica ({{ic|/dev/sda5}}) del disco.
  
====Tabla de particiones GUID conocida como GPT====
+
=====Tabla de particiones GUID conocida como GPT=====
 
{{Box||Véase el artículo principal: [[GUID Partition Table (Español)]]|#E5E5FF|#FCFCFC}}
 
{{Box||Véase el artículo principal: [[GUID Partition Table (Español)]]|#E5E5FF|#FCFCFC}}
  
Es necesario ajustar el bit 2 a los atributos relativos a la partición {{ic|/boot}}.
+
Es necesario ajustar el bit 2 a los atributos (atributo «legacy_boot») relativos a la partición {{ic|/boot}}.
  
 
  # sgdisk /dev/sda --attributes=1:set:2
 
  # sgdisk /dev/sda --attributes=1:set:2
Line 84: Line 107:
 
Esto cambiará el atributo ''legacy BIOS bootable'' en la partición 1. Para comprobarlo:
 
Esto cambiará el atributo ''legacy BIOS bootable'' en la partición 1. Para comprobarlo:
  
# sgdisk /dev/sda --attributes=1:show
+
{{hc|<nowiki># sgdisk /dev/sda --attributes=1:show</nowiki>|
 
  1:2:1 (legacy BIOS bootable)
 
  1:2:1 (legacy BIOS bootable)
 +
}}
  
 
Instalación en el MBR:
 
Instalación en el MBR:
Line 94: Line 118:
 
  # syslinux-install_update -i -m
 
  # syslinux-install_update -i -m
  
====Reinicio====
+
== Sistemas UEFI ==
Si se reinicia el sistema ahora, saldrá el prompt de syslinux. Para poder arrancar automáticamente el sistema u obtener un menú de arranque, será necesario aún crear un archivo de configuración.
+
 
 +
{{Nota|
 +
* El soporte para UEFI solo está disponible desde Syslinux 6.xx en adelante.
 +
 
 +
* {{ic|$esp}} es el punto de montaje de la ESP en las órdenes siguientes.
 +
 
 +
* {{ic|efi64}} indica sistemas UEFI con arquitectura de x86_64, para IA32 (32-bit), sustituya {{ic|efi64}} con {{ic|efi32}}.
 +
 
 +
* Syslinux, requiere que el kernel y los archivos initramfs residan en la partición ESP, en tanto que syslinux no tiene, actualmente, la capacidad de acceder a los archivos que están fuera de su propia partición (es decir, fuera de ESP, en este caso). Por esta razón, se recomienda montar ESP en {{ic|/boot}}.
 +
 
 +
* El script de instalación automática  {{ic|/usr/bin/syslinux-install_update}} no es compatible para instalar UEFI.
 +
 
 +
* La sintaxis de configuración de {{ic|syslinux.cfg}} para UEFI es la misma que la de la BIOS.
 +
}}
 +
 
 +
=== Limitaciones de Syslinux en la modalidad UEFI ===
 +
 
 +
* La aplicación de Syslinux UEFI, {{ic|syslinux.efi}}, no puede ser firmada por {{ic|sbsign}} (paquete sbsigntool) para su uso por UEFI Secure Boot. Bug report - http://bugzilla.syslinux.org/show_bug.cgi?id=8
 +
 
 +
* La utilización de la tecla TAB para editar los parámetros del kernel del menú de Syslinux UEFI crea errores en la pantalla (texto encima de otro). Bug report - http://bugzilla.syslinux.org/show_bug.cgi?id=9
 +
 
 +
* Syslinux UEFI no soporta cargar en cadena otras aplicaciones EFI como {{ic|UEFI Shell}} o {{ic|Windows Boot Manager}}. Bug report - http://bugzilla.syslinux.org/show_bug.cgi?id=17
 +
 
 +
* Syslinux UEFI no arranca en máquinas virtuales como QEMU/OVMF o VirtualBox o VMware y en algunos entornos de emulación UEFI como  DUET. Bug reports - http://bugzilla.syslinux.org/show_bug.cgi?id=21 and http://bugzilla.syslinux.org/show_bug.cgi?id=23
 +
 
 +
* Memdisk no está disponible para UEFI. Bug report - http://bugzilla.syslinux.org/show_bug.cgi?id=30
 +
 
 +
=== Instalación ===
 +
 
 +
* Instale el paquete {{Pkg|syslinux}} y configure syslinux en la partición EFI del sistema (ESP) como sigue:
 +
 
 +
# pacman -S syslinux
 +
 
 +
* Copie los archivos de syslinux a ESP:
 +
 
 +
# mkdir -p $esp/EFI/syslinux
 +
# cp -r /usr/lib/syslinux/efi64/* $esp/EFI/syslinux
 +
 
 +
* Cree una entrada de arranque para Syslinux utilizando [[#Unified_Extensible_Firmware_Interface#efibootmgr|efibootmgr]]:
 +
 
 +
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars
 +
# efibootmgr -c -d /dev/sdX -p Y -l /EFI/syslinux/syslinux.efi -L "Syslinux"
 +
 
 +
* Cree o modifique {{ic|$esp/EFI/syslinux/syslinux.cfg}} siguiendo las instrucciones de [[#Configuración]].
 +
 
 +
{{Nota|El archivo de configuración de UEFI es {{ic|$esp/EFI/syslinux/syslinux.cfg}}, no {{ic|/boot/syslinux/syslinux.cfg}}. Los archivos en {{ic|/boot/syslinux/}} son específicos de BIOS y no están relacionados con UEFI.}}
  
 
== Configuración ==
 
== Configuración ==
Line 104: Line 173:
 
{{Sugerencia|
 
{{Sugerencia|
 
*En lugar de utilizar como palabra clave {{ic|LINUX}}, se puede utilizar también {{ic|KERNEL}}. {{ic|KERNEL}} intenta detectar el tipo del archivo, mientras que {{ic|LINUX}} siempre espera un kernel Linux como parámetro.
 
*En lugar de utilizar como palabra clave {{ic|LINUX}}, se puede utilizar también {{ic|KERNEL}}. {{ic|KERNEL}} intenta detectar el tipo del archivo, mientras que {{ic|LINUX}} siempre espera un kernel Linux como parámetro.
*El valor {{ic|TIMEOUT}} está en unidades de un décimo de segundo.}}
+
*El valor {{ic|TIMEOUT}} está en unidades de '''un décimo''' de segundo.}}
  
 
=== Ejemplos ===
 
=== Ejemplos ===
Line 110: Line 179:
 
A continuación se presenta un archivo de configuración simple que mostrará el prompt de arranque: y arrancará automáticamente después de 5 segundos.
 
A continuación se presenta un archivo de configuración simple que mostrará el prompt de arranque: y arrancará automáticamente después de 5 segundos.
  
{{Nota|La partición en cuestión tiene que ser en {{ic|/}}(root), no {{ic|/boot}}.}}
+
{{Nota|La partición en cuestión tiene que ser la propia {{ic|/}}(root), no {{ic|/boot}}.}}
  
 
Configuración:
 
Configuración:
 +
{{hc|/boot/syslinux/syslinux.cfg|<nowiki>
 
  PROMPT 1
 
  PROMPT 1
 
  TIMEOUT 50
 
  TIMEOUT 50
Line 119: Line 189:
 
  LABEL arch
 
  LABEL arch
 
         LINUX ../vmlinuz-linux
 
         LINUX ../vmlinuz-linux
         APPEND root=/dev/sda2 ro
+
         APPEND root=/dev/sda2 rw
 
         INITRD ../initramfs-linux.img
 
         INITRD ../initramfs-linux.img
 
   
 
   
 
  LABEL archfallback
 
  LABEL archfallback
 
         LINUX ../vmlinuz-linux
 
         LINUX ../vmlinuz-linux
         APPEND root=/dev/sda2 ro
+
         APPEND root=/dev/sda2 rw
         INITRD ../initramfs-linux-fallback.img
+
         INITRD ../initramfs-linux-fallback.img</nowiki>
 +
}}
  
 
Si desea efectuar automáticamente el arranque sin visualizar el prompt, ajuste {{ic|PROMPT}} a {{ic|0}}.
 
Si desea efectuar automáticamente el arranque sin visualizar el prompt, ajuste {{ic|PROMPT}} a {{ic|0}}.
  
Si desea usar el [[UUID]] para la nomenclatura persistente de los dispositivos de bloques, modifique la línea {{ic|APPEND}} incluyendo el correspondiente UUID de la partición root:
+
Si desea usar la [[UUID]] para la nomenclatura permanente de los dispositivos de bloques, modifique la línea {{ic|APPEND}} incluyendo la correspondiente UUID de la partición root:
  
  APPEND root='''UUID='''978e3e81-8048-4ae1-8a06-aa727458e8ff ro
+
  APPEND root='''UUID='''978e3e81-8048-4ae1-8a06-aa727458e8ff rw
  
 
Si se usa el sistema de cifrado [[LUKS]] modifique la línea {{ic|APPEND}} para que Syslinux utilice el volumen cifrado:
 
Si se usa el sistema de cifrado [[LUKS]] modifique la línea {{ic|APPEND}} para que Syslinux utilice el volumen cifrado:
 
   
 
   
  APPEND root=/dev/mapper/<name> cryptdevice=/dev/sda2:<name> ro
+
  APPEND root=/dev/mapper/''group''-''name'' cryptdevice=/dev/sda2:''name'' rw
  
 
Si se utiliza un [[Wikipedia:es:RAID|RAID]] software mediante [http://neil.brown.name/blog/mdadm mdadm], modifique la línea {{ic|APPEND}} de forma que englobe sus matrices RAID. En el ejemplo que sigue vienen utilizadas tres matrices en RAID 1 y ajustadas apropiadamente cada una como root:
 
Si se utiliza un [[Wikipedia:es:RAID|RAID]] software mediante [http://neil.brown.name/blog/mdadm mdadm], modifique la línea {{ic|APPEND}} de forma que englobe sus matrices RAID. En el ejemplo que sigue vienen utilizadas tres matrices en RAID 1 y ajustadas apropiadamente cada una como root:
  APPEND root=/dev/md1 ro md=0,/dev/sda2,/dev/sdb2 md=1,/dev/sda3,/dev/sdb3 md=2,/dev/sda4,/dev/sdb4
+
  APPEND root=/dev/md1 rw md=0,/dev/sda2,/dev/sdb2 md=1,/dev/sda3,/dev/sdb3 md=2,/dev/sda4,/dev/sdb4
  
==== Menú de arranque modo texto ====
+
Si el arranque desde una partición situada en un RAID software falla usando el método anterior, otra forma alternativa fiable es usando las etiquetas de las particiones:
Syslinux permite usar un menú de arranque. Para utilizarlo, copie el módulo COM32 menu en el directorio de syslinux:
+
  APPEND root=LABEL=THEROOTPARTITIONLABEL rw
  # cp /usr/lib/syslinux/menu.c32 /boot/syslinux/
+
  
Si {{ic|/boot}} se encuentra en la misma partición que {{ic|/usr}}, bastará utilizar un enlace simbólico:
+
==== Menú de arranque en modo texto ====
  # ln -s /usr/lib/syslinux/menu.c32 /boot/syslinux/
+
Syslinux permite usar un menú de arranque. Para utilizarlo, copie el módulo COM32 {{ic|menu}} en el directorio de Syslinux:
 +
  # cp /usr/lib/syslinux/bios/menu.c32 /boot/syslinux/
  
 
Configuración:
 
Configuración:
Line 159: Line 230:
 
         MENU LABEL Arch Linux
 
         MENU LABEL Arch Linux
 
         LINUX ../vmlinuz-linux
 
         LINUX ../vmlinuz-linux
         APPEND root=/dev/sda2 ro
+
         APPEND root=/dev/sda2 rw
 
         INITRD ../initramfs-linux.img
 
         INITRD ../initramfs-linux.img
 
   
 
   
Line 165: Line 236:
 
         MENU LABEL Arch Linux Fallback
 
         MENU LABEL Arch Linux Fallback
 
         LINUX ../vmlinuz-linux
 
         LINUX ../vmlinuz-linux
         APPEND root=/dev/sda2 ro
+
         APPEND root=/dev/sda2 rw
 
         INITRD ../initramfs-linux-fallback.img</nowiki>
 
         INITRD ../initramfs-linux-fallback.img</nowiki>
 
}}
 
}}
Line 171: Line 242:
 
Para más detalles sobre el menú, consulte [http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=blob;f=doc/menu.txt the Syslinux documentation].
 
Para más detalles sobre el menú, consulte [http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=blob;f=doc/menu.txt the Syslinux documentation].
  
==== Menú de arranque modo gráfico ====
+
==== Menú de arranque en modo gráfico ====
Syslinux permite también el uso de un menú de arranque gráfico. Para usarlo, copie el módulo COM32 vesamenu en la carpeta de Syslinux
+
Syslinux permite también el uso de un menú de arranque gráfico. Para usarlo, copie el módulo COM32 {{ic|vesamenu}} en la carpeta de Syslinux
  # cp /usr/lib/syslinux/vesamenu.c32 /boot/syslinux/
+
  # cp /usr/lib/syslinux/bios/vesamenu.c32 /boot/syslinux/
  
Si {{ic|/boot}} está en la misma partición que {{ic|/usr}}, bastará un enlace simbólico:
+
{{Nota|Si utiliza [[Unified Extensible Firmware Interface (Español)|UEFI]] asegúrese de copiar desde {{ic|/usr/lib/syslinux/efi64/}} ({{ic|efi32}} para sistemas i686), de lo contrario se mostrará una pantalla en negro. En ese caso, arranque desde un medio live y utilice [[Change Root (Español)|chroot]] para hacer los cambios apropiados.}}
# ln -s /usr/lib/syslinux/vesamenu.c32 /boot/syslinux/
+
  
 
[https://projects.archlinux.org/archiso.git/tree/configs/releng/syslinux Esta configuración] usa el mismo diseño del menú del CD de instalación de Arch. El archivo background (para imágenes del fondo) se puede encontrar allí también.
 
[https://projects.archlinux.org/archiso.git/tree/configs/releng/syslinux Esta configuración] usa el mismo diseño del menú del CD de instalación de Arch. El archivo background (para imágenes del fondo) se puede encontrar allí también.
Line 215: Line 285:
 
         MENU LABEL Arch Linux
 
         MENU LABEL Arch Linux
 
         LINUX ../vmlinuz-linux
 
         LINUX ../vmlinuz-linux
         APPEND root=/dev/sda2 ro
+
         APPEND root=/dev/sda2 rw
 
         INITRD ../initramfs-linux.img
 
         INITRD ../initramfs-linux.img
 
   
 
   
Line 222: Line 292:
 
         MENU LABEL Arch Linux Fallback
 
         MENU LABEL Arch Linux Fallback
 
         LINUX ../vmlinuz-linux
 
         LINUX ../vmlinuz-linux
         APPEND root=/dev/sda2 ro
+
         APPEND root=/dev/sda2 rw
 
         INITRD ../initramfs-linux-fallback.img</nowiki>
 
         INITRD ../initramfs-linux-fallback.img</nowiki>
 
}}
 
}}
Line 228: Line 298:
 
A partir de Syslinux 3.84, {{ic|vesamenu.c32}} soporta la directiva {{ic|MENU RESOLUTION $WIDTH $HEIGHT}}.
 
A partir de Syslinux 3.84, {{ic|vesamenu.c32}} soporta la directiva {{ic|MENU RESOLUTION $WIDTH $HEIGHT}}.
 
Para usarla, inserte {{ic|MENU RESOLUTION 1440 900}} para configurar, por ejemplo, una resolución de 1440x900.
 
Para usarla, inserte {{ic|MENU RESOLUTION 1440 900}} para configurar, por ejemplo, una resolución de 1440x900.
La imagen background tendrá que ser de la misma resolución, de otra manera, syslinux rechazará la carga del menú.
+
La imagen background tendrá que ser de la misma resolución, de otra manera, Syslinux rechazará la carga del menú.
  
 
=== Arranque automático ===
 
=== Arranque automático ===
Si no desea ver el menú de syslinux en absoluto, comente todas los comandos {{ic|UI}} y asegúrese de que hay un {{ic|DEFAULT}} configurado en {{ic|syslinux.cfg}}.
+
Si no desea ver el menú de Syslinux en absoluto, comente todas los comandos {{ic|UI}} y asegúrese de que hay un {{ic|DEFAULT}} configurado en {{ic|syslinux.cfg}}.
 +
 
 +
=== Seguridad ===
 +
 
 +
Syslinux tiene dos niveles de seguridad para el gestor de arranque: una contraseña maestra para el menú y una contraseña para cada elemento del menú. En {{ic|syslinux.cfg}}, utilice
 +
{{bc|
 +
MENU MASTER PASSWD passwd
 +
}}
 +
para establecer una contraseña maestra del gestor de arranque, y
 +
{{bc|
 +
MENU PASSWD passwd
 +
}}
 +
dentro de un bloque {{ic|LABEL}} para proteger con contraseña los elementos individuales del arranque.
  
 
=== Chainloading ===
 
=== Chainloading ===
Si desea cargar en cadena otros sistemas operativos (como Windows) u otros gestores de arranque, copie (o utilice un enlace simbólico) el módulo {{ic|chain.c32}} en el directorio syslinux (para más detalles, consulte las instrucciones de la sección anterior). A continuación, cree una sección en el archivo de configuración:
+
Si desea cargar en cadena otros sistemas operativos (como Windows) u otros gestores de arranque, copie (o utilice un enlace simbólico) el módulo {{ic|chain.c32}} en el directorio Syslinux (para más detalles, consulte las instrucciones de la sección anterior). A continuación, cree una sección en el archivo de configuración:
 
{{hc|/boot/syslinux/syslinux.cfg|
 
{{hc|/boot/syslinux/syslinux.cfg|
 
...
 
...
Line 244: Line 326:
 
}}
 
}}
  
{{ic|hd0 3}} representa la tercera partición del primer disco identificado en la BIOS - advierta que, las unidades se cuentan desde cero, pero las particiones se cuentan desde uno-.
+
{{ic|hd0 3}} representa la tercera partición del primer disco identificado en la BIOS &mdash;advierta que, las unidades se cuentan desde cero, pero las particiones se cuentan desde uno&mdash;.
 +
 
 +
{{Nota|En Windows, esto omite el propio gestor de arranque del sistema, ({{ic|bootmgr}}), que es requerido por algunas actualizaciones importantes  ([http://support.microsoft.com/kb/2883200 eg.]) para completar. En tales casos, puede ser aconsejable establecer temporalmente el flag boot del MBR en la partición de Windows (por ejemplo, con [[GParted]]), dejando la actualización al finalizar la instalación, y restableciendo luego el flag a la partición syslinux (por ejemplo, desde el propio Windows con [http://www.online-tech-tips.com/computer-tips/set-active-partition-vista-xp DiskPart]).}}
  
Si no está seguro de qué unidad se identifica como la primera de su BIOS, puede utilizar el identificador MBR, o, si utiliza GPT, la etiqueta del sistema de archivos. Para conocer el identificador de MBR, utilice el comando:
+
Si no está seguro de qué unidad se identifica como la primera de su BIOS, puede utilizar el identificador MBR, o, si utiliza GPT, la etiqueta del sistema de archivos. Para conocer el identificador de MBR, utilice la orden:
 
{{hc|# fdisk -l /dev/sdb|<nowiki>
 
{{hc|# fdisk -l /dev/sdb|<nowiki>
 
  Disk /dev/sdb: 128.0 GB, 128035676160 bytes  
 
  Disk /dev/sdb: 128.0 GB, 128035676160 bytes  
Line 269: Line 353:
 
...
 
...
 
}}
 
}}
Para más información sobre chainloading, consulte [http://syslinux.zytor.com/wiki/index.php/Comboot/chain.c32].
+
Para más información sobre chainloading, consulte [http://www.syslinux.org/wiki/index.php/Comboot/chain.c32 la wiki de Syslinux].
  
Si tiene [[GRUB]] instalado en la misma partición, se puede cargar en cadena utilizando:
+
Si tiene [[GRUB (Español)|GRUB]] instalado en la misma partición, se puede cargar en cadena utilizando:
 
{{hc|/boot/syslinux/syslinux.cfg|<nowiki>
 
{{hc|/boot/syslinux/syslinux.cfg|<nowiki>
 
...
 
...
Line 283: Line 367:
  
 
===Chainloading de otros sistemas Linux===
 
===Chainloading de otros sistemas Linux===
Al hacer el chainloading de un gestor de arranque como el de Windows, no hay ningún problema, ya que cuenta con un gestor de arranque para empezar, mientras syslinux sea capaz de cargar archivos que residan en la misma partición del archivo de configuración. Por lo tanto, si usted tiene otra versión de Linux instalada en una partición diferente y sin {{ic|/boot}} compartida, debe utilizar Extlinux. En pocas palabras, se puede instalar este último en el superbloque de la partición para poder ser llamado por syslinux instalado en el MBR. Extlinux es parte del proyecto Syslinux y está incluida en el paquete {{Pkg|syslinux}}.
+
Al hacer el chainloading de un gestor de arranque como el de Windows, no hay ningún problema, ya que cuenta con un gestor de arranque para empezar, mientras Syslinux sea capaz de cargar archivos que residan en la misma partición del archivo de configuración. Por lo tanto, si usted tiene otra versión de Linux instalada en una partición diferente y sin {{ic|/boot}} compartida, debe utilizar Extlinux. En pocas palabras, se puede instalar este último en el superbloque de la partición para poder ser llamado por Syslinux instalado en el MBR. Extlinux es parte del proyecto Syslinux y está incluida en el paquete {{Pkg|syslinux}}.
  
Las instrucciones siguientes presuponen que ya ha instalado syslinux. Estas instruccións también presumen la típica configuración de Arch Linux de que se está utilizando la ruta de acceso a {{ic|/boot/syslinux}} y que el chainloaded {{ic|/}} está en {{ic|/dev/sda3}}.
+
Las instrucciones siguientes presuponen que ya ha instalado Syslinux. Estas instruccións también presumen la típica configuración de Arch Linux de que se está utilizando la ruta de acceso a {{ic|/boot/syslinux}} y que el chainloaded {{ic|/}} está en {{ic|/dev/sda3}}.
  
Una vez que arranque Linux (la distribución que syslinux inicia por defecto), se monta otra partición root de la otra distribución en un punto de montaje que desee. En este ejemplo vamos a usar {{ic|/mnt}}. Tenga en cuenta que si utiliza una partición /boot separada será necesario montarla: El ejemplo supone que ésta es {{ic|/dev/sda2}}.
+
Una vez que arranque Linux (la distribución que Syslinux inicia por defecto), se monta otra partición root de la otra distribución en un punto de montaje que desee. En este ejemplo vamos a usar {{ic|/mnt}}. Tenga en cuenta que si utiliza una partición /boot separada será necesario montarla: El ejemplo supone que ésta es {{ic|/dev/sda2}}.
 
  # mount /dev/sda3 /mnt
 
  # mount /dev/sda3 /mnt
 
  # mount /dev/sda2 /mnt/boot (only necessary for separate /boot)
 
  # mount /dev/sda2 /mnt/boot (only necessary for separate /boot)
Line 305: Line 389:
 
     linux /boot/vmlinuz-linux
 
     linux /boot/vmlinuz-linux
 
     initrd /boot/initramfs-linux.img
 
     initrd /boot/initramfs-linux.img
     append root=/dev/sda3 ro quiet
+
     append root=/dev/sda3 rw quiet
  
  
Line 369: Line 453:
 
Ahora edite {{ic|syslinux.conf}} y añada:
 
Ahora edite {{ic|syslinux.conf}} y añada:
 
{{hc|/boot/syslinux/syslinux.cfg|
 
{{hc|/boot/syslinux/syslinux.cfg|
  KBDMAP de.ktl
+
  KBDMAP es.ktl
 
}}
 
}}
  
Line 378: Line 462:
 
}}
 
}}
 
para ocultar el menú mientras se muestra sólo el tiempo de espera. Presione cualquier tecla para que aparezca el menú.
 
para ocultar el menú mientras se muestra sólo el tiempo de espera. Presione cualquier tecla para que aparezca el menú.
 +
 +
=== Pxelinux===
 +
 +
{{Nota|Syslinux no disponde de un stack de red UEFI, por lo que no será posible utilizar {{AUR|syslinux-efi-git}} (a diferencia de [[#GRUB]] con el que sí es posible) para obtener el kernel e initramfs a través de un servidor tftp; pxelinux todavía funciona bien arrancando con el PXE clásico}}
 +
 +
[[Syslinux|Pxelinux]] es proporcionado por {{Pkg|syslinux}}.
 +
 +
Copie el cargador de arranque pxelinux (proporcionado por el paquete syslinux) en el directorio de arranque del cliente.
 +
 +
# cp /usr/lib/syslinux/bios/pxelinux.0 "$root/boot"
 +
# mkdir "$root/boot/pxelinux.cfg"
 +
 +
También crearemos el directorio {{ic|pxelinux.cfg}}, que es donde pxelinux buscará los archivos de configuración por defecto. Dado que no se intanta hacer distinciones entre distintos MAC de varios equipos, se creará el archivo de configuración {{ic|default}}.
 +
 +
{{hc|# vim "$root/boot/pxelinux.cfg/default"|<nowiki>
 +
default linux
 +
 +
label linux
 +
kernel vmlinuz-linux
 +
append initrd=initramfs-linux.img quiet ip=:::::eth0:dhcp nfsroot=10.0.0.1:/arch
 +
</nowiki>}}
 +
 +
O, si se está usando NBD, utilice la siguiente línea append :
 +
 +
{{bc|<nowiki>append ro initrd=initramfs-linux.img ip=:::::eth0:dhcp nbd_host=10.0.0.1 nbd_name=arch root=/dev/nbd0</nowiki>}}
 +
 +
{{Nota|Tendrá que cambiar {{ic|nbd_host}} y/o {{ic|nfsroot}}, respectivamente, para que coincida con la configuración de red (la dirección del servidor NFS/NBD)}}
 +
 +
La sintaxis de configuración pxelinux es idéntica a syslinux; consulte la documentación de los desarrolladores para obtener más información .
 +
 +
E kernel e initramfs serán transferidos vía TFTP, por lo que las rutas serán las relativas al root del servitor TFTP. En otro caso, el sistema de archivos root puede ser el propio del montado mediante NFS, en cuyo caso la ruta será la relativa al root del servidor NFS.
 +
 +
Para cargar pxelinux, sustituya {{ic|filename "/grub/i386-pc/core.0";}} en {{ic|/etc/dhcpd.conf}} con {{ic|filename "/pxelinux.0"}}
  
 
==Solución de Problemas==
 
==Solución de Problemas==
Line 401: Line 518:
 
:4. Reinicie.
 
:4. Reinicie.
  
==== Fallo de fsck en la partición root ====
+
=== Fallo de fsck en la partición root ===
En el caso de una eventual partición root gravemente dañada (con el journal dañado), ejecute las siguientes órdenes en la shell de emergencia de syslinux:
+
En el caso de una eventual partición root gravemente dañada (con el journal dañado), abra la shell de emergencia de Syslinux y monte el sistema de archivo root:
{{bc|<nowiki>
+
 
# mount /dev/<root partition> /new_root;  ## montar la partición raíz
+
# mount /dev/root partition /new_root
# cp /new_root/sbin/tune2fs /sbin/;  ## obtener el ejecutable tune2fs desde la partición raíz (no se incluye en syslinux)
+
 
</nowiki>
+
Y obtenga el ejecutable tune2fs binary que se encuentra en la partición root partition (el cual no está incluido en Syslinux):
}}
+
 
 +
# cp /new_root/sbin/tune2fs /sbin/
  
 
Siga con las instrucciones descritas en [https://wiki.archlinux.org/index.php/Fsck#ext2fs_:_no_external_journal ext2fs: no external journal] para crear un journal nuevo para la partición root.
 
Siga con las instrucciones descritas en [https://wiki.archlinux.org/index.php/Fsck#ext2fs_:_no_external_journal ext2fs: no external journal] para crear un journal nuevo para la partición root.
Line 417: Line 535:
 
  # mkfs.msdos -F 16 /dev/sda1
 
  # mkfs.msdos -F 16 /dev/sda1
  
a continuación, instalar y configurar syslinux.
+
a continuación, instale y configure Syslinux.
  
 
===Missing operating system ===
 
===Missing operating system ===
Line 428: Line 546:
 
  # syslinux-install_update -iam
 
  # syslinux-install_update -iam
 
y reinicie.
 
y reinicie.
 +
 +
También recibirá este error si está tratando de arrancar desde una matriz [[RAID]] md 1 creada con una versión de los metadatos no soportada por Syslinux. A partir de agosto de 2013 mdadm creará, de forma predeterminada, una matriz con la versión 1.2 de los metadatos, pero Syslinux tan solo soporta la versión 1.0. Si este es el caso, tendrá que volver a crear su matriz [[RAID]] pasando la opción {{ic|1=--metadata=1.0}} para mdadm.
  
 
===¡Se inicia Windows en vez de Syslinux!===
 
===¡Se inicia Windows en vez de Syslinux!===
 
'''Solución:''' Asegúrese de que la partición que contiene {{ic|/boot}} tiene el indicador (flag) boot activo. También, asegúrese de que el indicador boot no está activado en la partición de Windows. Consulte la sección de instalación anterior.
 
'''Solución:''' Asegúrese de que la partición que contiene {{ic|/boot}} tiene el indicador (flag) boot activo. También, asegúrese de que el indicador boot no está activado en la partición de Windows. Consulte la sección de instalación anterior.
  
El MBR que viene con syslinux busca la primera partición activa que tiene el flag boot habilitado. Es probable que (syslinux) encontrase primero la partición de Windows y que la misma tuviese el flag boot activo. Si lo desea, es posible utilizar tambien el MBR porporcionado por Windows o MS-DOS {{ic|fdisk}}.
+
El MBR que viene con Syslinux busca la primera partición activa que tiene el flag boot habilitado. Es probable que Syslinux encontrase primero la partición de Windows y que la misma tuviese el flag boot activo. Si lo desea, es posible utilizar tambien el MBR porporcionado por Windows o MS-DOS {{ic|fdisk}}.
  
 
===Entradas del menú sin ningún efecto===
 
===Entradas del menú sin ningún efecto===
Si se selecciona una entrada del menu de arranque y no sucede nada, tan sólo "refresca" el menú, probablemente signifique que tiene un error en el archivo {{ic|syslinux.cfg}}. Presione {{Keypress|Tab}} y modifique los parámetros del boot. Alternativamente, pulse {{Keypress|Esc}} y escriba en el {{ic|LABEL}} de su entrada de arranque (por ejemplo, ''arch'').
+
Si se selecciona una entrada del menu de arranque y no sucede nada, tan sólo "refresca" el menú, probablemente signifique que tiene un error en el archivo {{ic|syslinux.cfg}}. Presione {{ic|Tab}} y modifique los parámetros del boot. Alternativamente, pulse {{ic|Esc}} y escriba en el {{ic|LABEL}} de su entrada de arranque (por ejemplo, ''arch'').
  
 
===Imposible eliminar ldlinux.sys===
 
===Imposible eliminar ldlinux.sys===
  
El archivo {{ic|ldlinux.sys}} tiene establecido el atributo de inmutable, para prevenir que pueda ser borrado o sobreescrito. Esto implica que el sector en el que reside el archivo en cuestión no debe cambiar, de lo contrario Syslinux tendrá que ser reinstalado. Para ello tendrá que eliminarlo, ejecutando los siguientes comandos:
+
El archivo {{ic|ldlinux.sys}} tiene establecido el atributo de inmutable, para prevenir que pueda ser borrado o sobreescrito. Esto implica que el sector en el que reside el archivo en cuestión no debe cambiar, de lo contrario Syslinux tendrá que ser reinstalado. Para ello tendrá que eliminarlo, ejecutando las siguientes órdenes:
  
 
  # chattr -i /boot/syslinux/ldlinux.sys
 
  # chattr -i /boot/syslinux/ldlinux.sys
Line 446: Line 566:
 
===Se visualiza un cuadrado blanco en el ángulo superior izquierdo cuando se utiliza vesamenu===
 
===Se visualiza un cuadrado blanco en el ángulo superior izquierdo cuando se utiliza vesamenu===
 
Problemas:
 
Problemas:
''A partir de linux-3.0, el controlador de modesetting trata de mantener el contenido actual de la pantalla después de cambiar la resolución (por lo menos, lo hace con mi Intel, al tener syslinux en modo texto). Parece que esto va mal cuando se combina con el módulo vesamenu en syslinux (el bloque blanco es, en realidad, un intento de mantener el menú de syslinux, pero el controlador no logra captar la imagen de la modalidad gráfica vesa).''
+
''A partir de linux-3.0, el controlador de modesetting trata de mantener el contenido actual de la pantalla después de cambiar la resolución (por lo menos, lo hace con mi Intel, al tener Syslinux en modo texto). Parece que esto va mal cuando se combina con el módulo vesamenu en Syslinux (el bloque blanco es, en realidad, un intento de mantener el menú de Syslinux, pero el controlador no logra captar la imagen de la modalidad gráfica vesa).''
  
 
Si tiene una resolución personalizada y se utiliza {{ic|vesamenu}} junto con modesetting, pruebe insertando lo siguiente en {{ic|syslinux.cfg}} para remover el bloque blanco y continuar el arranque en modo gráfico:
 
Si tiene una resolución personalizada y se utiliza {{ic|vesamenu}} junto con modesetting, pruebe insertando lo siguiente en {{ic|syslinux.cfg}} para remover el bloque blanco y continuar el arranque en modo gráfico:
  
 
  APPEND root=/dev/sda6 ro 5 '''vga=current''' quiet splash
 
  APPEND root=/dev/sda6 ro 5 '''vga=current''' quiet splash
 +
 +
=== Cargar Windows no funciona, cuando se instala en otra unidad ===
 +
 +
Si Windows está instalado en una unidad diferente a la de Arch y tiene problemas para cargarlo, pruebe la siguiente configuración:
 +
 +
LABEL Windows
 +
        MENU LABEL Windows
 +
        COM32 chain.c32
 +
        APPEND mbr:0xdfc1ba9e swap
 +
 +
sustituya el código mbr con el de la unidad de windows (puede ver cómo [[Syslinux_(Español)#Chainloading|más arriba]]), y añada {{ic|swap}} a las opciones.
  
 
== Véase también ==
 
== Véase también ==
 
* [http://www.syslinux.org Official Website]
 
* [http://www.syslinux.org Official Website]
 
* [http://www.josephn.net/scrapbook/pxelinux_stuff PXELinux configuration]
 
* [http://www.josephn.net/scrapbook/pxelinux_stuff PXELinux configuration]

Revision as of 20:06, 1 January 2014

Syslinux es una colección de cargadores de arranque capaz de iniciar desde discos duros, CDs, y vía network utilizando PXE. Soporta sistema de archivos FAT, ext2, ext3, ext4 y Btrfs.

Nota:
  • Syslinux (a partir de la versión 6.02, tanto para BIOS como para UEFI) no está en condiciones de acceder a los archivos contenidos en una partición diferente de aquella en la cual se ha instalado. Tal característica (llamada multi-fs) deberá ser ahora implementada por los desarrolladores. Si quiere ayudar con la función multi-fs, contacte con upstream.
  • Si se está actualizando Syslinux desde la versión 4.xx (o 5.xx) a la 6.xx, por favor, reinstale (no actualice) manualemente Syslinux BIOS (sin utilizar el script de instalación) siguiendo las indicaciones de la sección #Instalación manual. El script de instalación proporcionado puede no efectuar la instalación correctamente.

Sistemas BIOS

Proceso de arranque de Syslinux

  1. Etapa 1:
    • Fase 1 - Carga del MBR - En el arranque del ordenador, la BIOS lee el código de arranque contenido en el MBR, la región de los 440 byte, situada al inicio del disco (donde residen los archivos (/usr/lib/syslinux/bios/mbr.bin o /usr/lib/syslinux/bios/gptmbr.bin).
    • Fase 2 - Busqueda de la partición activa. El Stage 1 MBR boot code busca la partición marcada como activa (etiqueta «boot» en los discos MBR). En el ejemplo se presume que tal partición corresponde a la que está /boot.
  2. Etapa 2:
    • Fase 1 - Ejecución del volume boot record - El Stage 1 MBR boot code ejecuta el Volume Boot Record (VBR) de la partición /boot. En el caso de syslinux, el VBR boot code está en el inicio del sector definido en el archivo /boot/syslinux/ldlinux.sys creado con la orden extlinux --install. Advierta que ldlinux.sys y ldlinux.c32 no son lo mismo.
    • Fase 2 - Ejecución de /boot/syslinux/ldlinux.sys - El VBR cargará el resto del archivo /boot/syslinux/ldlinux.sys, cuya ubicación en el disco no debe cambiar, de lo contrario syslinux no arrancará.
      Nota: En el caso del sistemas de archivos Btrfs, el método anterior no funcionará ya que los archivos están constantemente moviéndose, de lo que resulta un cambio de la ubicación del archivo ldlinux.sys. Por lo tanto, en el caso de BTRFS el código completo de ldlinux.sys estará embebido en el espacio de los 64 KB siguientes al VBR y no vendrá instalado en /boot/syslinux/ldlinux.sys, a diferencia de otros sistemas de archivos.
  3. Etapa 3:
    • Carga de /boot/syslinux/ldlinux.c32 - El archivo /boot/syslinux/ldlinux.sys cargará /boot/syslinux/ldlinux.c32 (módulo del núcleo) que contiene el resto de la parte del núcleo de syslinux que no encaja en ldlinux.sys (debido a las limitaciones respecto al tamaño de archivo). El archivo ldlinux.c32 debe estar presente en todas las instalaciones de syslinux/extlinux y debe coincidir con la versión de ldlinux.sys instalada en la partición. De lo contrario syslinux no podrá arrancar. Véase http://bugzilla.syslinux.org/show_bug.cgi?id=7 para más información.
  4. Etapa 4:
    • Localización y carga del archivo de configuración - Una vez que Syslinux está completamente cargado, buscará /boot/syslinux/syslinux.cfg (o /boot/syslinux/extlinux.conf en algunos casos) y lo cargará, si lo encuentra. Si no lo encuentra, syslinux lanzará el prompt boot:. El paso descrito y el resto de la parte no principal de syslinyux (los módulos (/boot/syslinux/*.c32, excluyendo los lib*.c32, y ldlinux.c32) necesitan la presencia de los módulos /boot/syslinux/lib*.c32 (bibliotecas). Los módulos de las bibliotecas, lib*.c32, y los módulos no principales, *.c32, deben coincidir con la versión de ldlinux.sys instalada en la partición.

Instalación

Instale syslinux desde los repositorios oficiales.

# pacman -S syslinux
Nota:
  • A partir de Syslinux 4, Extlinux y Syslinux son la misma cosa.
  • gptfdisk es necesario para proporcionar soporte a GPT utilizando el script automático.
  • Si su partición boot es FAT, necesita también mtools.

Instalación automática

Nota: El script syslinux-install_update es un guión específico de Arch, y no es proporcionado/mantenido por los desarrolladores de Syslinux. Por favor, dirija cualquier informe de error específico a Arch Bug Tracker y no a los desarrolladores.

El script syslinux-install_update se ocupará de la instalación de Syslinux, de la copia/creación del enlace simbólico para el módulo *.c32 en /boot/syslinux, de la configuración de la etiqueta «boot» y de la instalación del código de arranque en el MBR. Puede gestionar tablas de particiones MBR y GPT, junto con RAID software.

1. Si se utiliza una partición boot separada, asegúrese de que está montada. Compruébelo con lsblk; si no se ve ningún punto de montaje que indique a /boot, monte la partición antes de continuar.
2. Ejecute el script syslinux-install_update con los siguientes argumentos: -i (instala los archivos), -a (marca la partición como activa con la etiqueta boot), -m (instala el código de arranque en el MBR):
# syslinux-install_update -i -a -m
3. Cree o edite /boot/syslinux/syslinux.cfg siguiendo las instrucciones de #Configuración.
Nota:
  • Al reiniciar el sistema ahora, se tendrá un prompt de Syslinux. Para arrancar automáticamente el sistema o conseguir un menú de arranque, todavía habrá que crear un archivo de configuración..
  • Si acaba de clonar el disco o lo ha montado, por ejemplo sobre /mnt/clone, instale syslinux emitiéndo la orden desde el soporte de instalación de Arch:
# syslinux-install_update.sh -i -a -m -c /mnt/clone

Instalación manual

Nota:
  • Si no está seguro de la tabla de particiones que está utilizando (MBR o GPT), se puede comprobar con la siguiente orden:
# blkid -s PTTYPE -o value /dev/sda
gpt
  • Si sew está tratando de rescatar un sistema instalado con un live CD, asegúrese de efectuar chroot antes de ejecutar las siguientes órdenes. Si no efectúa chroot, será necesario anteponer el punto de montaje a todas las rutas especificadas (salvo las que se inician con /dev/).

La partición de arranque, en la que se tiene previsto instalar Syslinux, debe estar formateada con un sistema de archivos FAT, ext2, ext3, ext4, o Btrfs. Se debe instalar sobre un directorio montado (y no sobre una partición /dev/sdXY). No es necesario instalarlo en el directorio root de un sistema de archivos, por ejemplo, si tenemos la partición /dev/sda1 montada en /boot es posible instalar Syslinux en el directorio syslinux:

# mkdir /boot/syslinux
# cp -r /usr/lib/syslinux/bios/*.c32 /boot/syslinux/                           ## copy ALL the *.c32 files from /usr/lib/syslinux/bios/, DO NOT SYMLINK
# extlinux --install /boot/syslinux

Después de esto, instale el código de arranque de Syslinux, (mbr.bin o gptmbr.bin), en el Master Boot Record, la región de los 440 byte del disco que alberga el código de arranque (que no se debe confundir con MBR conocida como tabla de particiones msdos).

Tabla de particiones MBR

Template:Box Será necesario marcar la partición boot como activa en la tabla de particiones. Las aplicaciones que incluyen la capacidad de hacer la operación descrita son fdisk, cfdisk, sfdisk, parted/gparted (etiqueta «boot»). Debería tener un aspecto como el siguiente:

# 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

Instale Syslinux en el MBR:

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

Syslinux proporciona un MBR alternativo: altmbr.bin. Este MBR no escanea en busca de particiones booteables, sino que el último byte de la MBR establece un valor que indica la partición desde la cual efectuar el arranque. Aquí está un ejemplo de cómo altmbr.bin puede copiar esa posición:

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

En este caso, un solo byte de valor 5 se inserta en el contenido del archivo altmbr.bin y los restantes 440 bytes se escriben en el MBR del dispositivo sda. Syslinux será instalado en la primera partición lógica (/dev/sda5) del disco.

Tabla de particiones GUID conocida como GPT

Template:Box

Es necesario ajustar el bit 2 a los atributos (atributo «legacy_boot») relativos a la partición /boot.

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

Esto cambiará el atributo legacy BIOS bootable en la partición 1. Para comprobarlo:

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

Instalación en el MBR:

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

Si esto no funciona, pruebe con esto:

# syslinux-install_update -i -m

Sistemas UEFI

Nota:
  • El soporte para UEFI solo está disponible desde Syslinux 6.xx en adelante.
  • $esp es el punto de montaje de la ESP en las órdenes siguientes.
  • efi64 indica sistemas UEFI con arquitectura de x86_64, para IA32 (32-bit), sustituya efi64 con efi32.
  • Syslinux, requiere que el kernel y los archivos initramfs residan en la partición ESP, en tanto que syslinux no tiene, actualmente, la capacidad de acceder a los archivos que están fuera de su propia partición (es decir, fuera de ESP, en este caso). Por esta razón, se recomienda montar ESP en /boot.
  • El script de instalación automática /usr/bin/syslinux-install_update no es compatible para instalar UEFI.
  • La sintaxis de configuración de syslinux.cfg para UEFI es la misma que la de la BIOS.

Limitaciones de Syslinux en la modalidad UEFI

Instalación

  • Instale el paquete syslinux y configure syslinux en la partición EFI del sistema (ESP) como sigue:
# pacman -S syslinux
  • Copie los archivos de syslinux a ESP:
# mkdir -p $esp/EFI/syslinux
# cp -r /usr/lib/syslinux/efi64/* $esp/EFI/syslinux
  • Cree una entrada de arranque para Syslinux utilizando efibootmgr:
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars
# efibootmgr -c -d /dev/sdX -p Y -l /EFI/syslinux/syslinux.efi -L "Syslinux"
  • Cree o modifique $esp/EFI/syslinux/syslinux.cfg siguiendo las instrucciones de #Configuración.
Nota: El archivo de configuración de UEFI es $esp/EFI/syslinux/syslinux.cfg, no /boot/syslinux/syslinux.cfg. Los archivos en /boot/syslinux/ son específicos de BIOS y no están relacionados con UEFI.

Configuración

El archivo de configuración de syslinux, syslinux.cfg, se debe crear en el mismo directorio donde se ha instalado syslinux. En este caso, /boot/syslinux/.

El gestor de arranque buscará el archivo syslinux.cfg (preferido) o bien extlinux.conf

Sugerencia:
  • En lugar de utilizar como palabra clave LINUX, se puede utilizar también KERNEL. KERNEL intenta detectar el tipo del archivo, mientras que LINUX siempre espera un kernel Linux como parámetro.
  • El valor TIMEOUT está en unidades de un décimo de segundo.

Ejemplos

Configuración básica

A continuación se presenta un archivo de configuración simple que mostrará el prompt de arranque: y arrancará automáticamente después de 5 segundos.

Nota: La partición en cuestión tiene que ser la propia /(root), no /boot.

Configuración:

/boot/syslinux/syslinux.cfg
 PROMPT 1
 TIMEOUT 50
 DEFAULT arch
 
 LABEL arch
         LINUX ../vmlinuz-linux
         APPEND root=/dev/sda2 rw
         INITRD ../initramfs-linux.img
 
 LABEL archfallback
         LINUX ../vmlinuz-linux
         APPEND root=/dev/sda2 rw
         INITRD ../initramfs-linux-fallback.img

Si desea efectuar automáticamente el arranque sin visualizar el prompt, ajuste PROMPT a 0.

Si desea usar la UUID para la nomenclatura permanente de los dispositivos de bloques, modifique la línea APPEND incluyendo la correspondiente UUID de la partición root:

APPEND root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff rw

Si se usa el sistema de cifrado LUKS modifique la línea APPEND para que Syslinux utilice el volumen cifrado:

APPEND root=/dev/mapper/group-name cryptdevice=/dev/sda2:name rw

Si se utiliza un RAID software mediante mdadm, modifique la línea APPEND de forma que englobe sus matrices RAID. En el ejemplo que sigue vienen utilizadas tres matrices en RAID 1 y ajustadas apropiadamente cada una como root:

APPEND root=/dev/md1 rw md=0,/dev/sda2,/dev/sdb2 md=1,/dev/sda3,/dev/sdb3 md=2,/dev/sda4,/dev/sdb4

Si el arranque desde una partición situada en un RAID software falla usando el método anterior, otra forma alternativa fiable es usando las etiquetas de las particiones:

APPEND root=LABEL=THEROOTPARTITIONLABEL rw

Menú de arranque en modo texto

Syslinux permite usar un menú de arranque. Para utilizarlo, copie el módulo COM32 menu en el directorio de Syslinux:

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

Configuración:

/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 rw
         INITRD ../initramfs-linux.img
 
 LABEL archfallback
         MENU LABEL Arch Linux Fallback
         LINUX ../vmlinuz-linux
         APPEND root=/dev/sda2 rw
         INITRD ../initramfs-linux-fallback.img

Para más detalles sobre el menú, consulte the Syslinux documentation.

Menú de arranque en modo gráfico

Syslinux permite también el uso de un menú de arranque gráfico. Para usarlo, copie el módulo COM32 vesamenu en la carpeta de Syslinux

# cp /usr/lib/syslinux/bios/vesamenu.c32 /boot/syslinux/
Nota: Si utiliza UEFI asegúrese de copiar desde /usr/lib/syslinux/efi64/ (efi32 para sistemas i686), de lo contrario se mostrará una pantalla en negro. En ese caso, arranque desde un medio live y utilice chroot para hacer los cambios apropiados.

Esta configuración usa el mismo diseño del menú del CD de instalación de Arch. El archivo background (para imágenes del fondo) se puede encontrar allí también.

Configuración:

/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 rw
         INITRD ../initramfs-linux.img
 
 
 LABEL archfallback
         MENU LABEL Arch Linux Fallback
         LINUX ../vmlinuz-linux
         APPEND root=/dev/sda2 rw
         INITRD ../initramfs-linux-fallback.img

A partir de Syslinux 3.84, vesamenu.c32 soporta la directiva MENU RESOLUTION $WIDTH $HEIGHT. Para usarla, inserte MENU RESOLUTION 1440 900 para configurar, por ejemplo, una resolución de 1440x900. La imagen background tendrá que ser de la misma resolución, de otra manera, Syslinux rechazará la carga del menú.

Arranque automático

Si no desea ver el menú de Syslinux en absoluto, comente todas los comandos UI y asegúrese de que hay un DEFAULT configurado en syslinux.cfg.

Seguridad

Syslinux tiene dos niveles de seguridad para el gestor de arranque: una contraseña maestra para el menú y una contraseña para cada elemento del menú. En syslinux.cfg, utilice

MENU MASTER PASSWD passwd 

para establecer una contraseña maestra del gestor de arranque, y

MENU PASSWD passwd 

dentro de un bloque LABEL para proteger con contraseña los elementos individuales del arranque.

Chainloading

Si desea cargar en cadena otros sistemas operativos (como Windows) u otros gestores de arranque, copie (o utilice un enlace simbólico) el módulo chain.c32 en el directorio Syslinux (para más detalles, consulte las instrucciones de la sección anterior). A continuación, cree una sección en el archivo de configuración:

/boot/syslinux/syslinux.cfg
...
 LABEL windows
         MENU LABEL Windows
         COM32 chain.c32
         APPEND hd0 3
...

hd0 3 representa la tercera partición del primer disco identificado en la BIOS —advierta que, las unidades se cuentan desde cero, pero las particiones se cuentan desde uno—.

Nota: En Windows, esto omite el propio gestor de arranque del sistema, (bootmgr), que es requerido por algunas actualizaciones importantes (eg.) para completar. En tales casos, puede ser aconsejable establecer temporalmente el flag boot del MBR en la partición de Windows (por ejemplo, con GParted), dejando la actualización al finalizar la instalación, y restableciendo luego el flag a la partición syslinux (por ejemplo, desde el propio Windows con DiskPart).

Si no está seguro de qué unidad se identifica como la primera de su BIOS, puede utilizar el identificador MBR, o, si utiliza GPT, la etiqueta del sistema de archivos. Para conocer el identificador de MBR, utilice la orden:

# 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

reemplazando /dev/sdb con la unidad que desea cargar en cadena. Utilizando el número hexadecimal de Disk identifier: 0xf00f1fd3 en este caso, la sintaxis en syslinux.cfg sería:

/boot/syslinux/syslinux.cfg
...
 LABEL windows
         MENU LABEL Windows
         COM32 chain.c32
         APPEND mbr:0xf00f1fd3
...

Para más información sobre chainloading, consulte la wiki de Syslinux.

Si tiene GRUB instalado en la misma partición, se puede cargar en cadena utilizando:

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

Esto puede ser necesario para el arranque a partir de imágenes ISO.

Chainloading de otros sistemas Linux

Al hacer el chainloading de un gestor de arranque como el de Windows, no hay ningún problema, ya que cuenta con un gestor de arranque para empezar, mientras Syslinux sea capaz de cargar archivos que residan en la misma partición del archivo de configuración. Por lo tanto, si usted tiene otra versión de Linux instalada en una partición diferente y sin /boot compartida, debe utilizar Extlinux. En pocas palabras, se puede instalar este último en el superbloque de la partición para poder ser llamado por Syslinux instalado en el MBR. Extlinux es parte del proyecto Syslinux y está incluida en el paquete syslinux.

Las instrucciones siguientes presuponen que ya ha instalado Syslinux. Estas instruccións también presumen la típica configuración de Arch Linux de que se está utilizando la ruta de acceso a /boot/syslinux y que el chainloaded / está en /dev/sda3.

Una vez que arranque Linux (la distribución que Syslinux inicia por defecto), se monta otra partición root de la otra distribución en un punto de montaje que desee. En este ejemplo vamos a usar /mnt. Tenga en cuenta que si utiliza una partición /boot separada será necesario montarla: El ejemplo supone que ésta es /dev/sda2.

# mount /dev/sda3 /mnt
# mount /dev/sda2 /mnt/boot (only necessary for separate /boot)

Instale extlinux y copie los archivos *.c32 necesarios:

# extlinux -i /mnt/boot/syslinux
# cp /usr/lib/syslinux/{chain,menu}.c32 /mnt/boot/syslinux

Crearemos /mnt/boot/syslinux/syslinux.cfg como sigue:

/boot/syslinux/syslinux.cfg on /dev/sda3
timeout 10

ui menu.c32


label Other Linux
    linux /boot/vmlinuz-linux
    initrd /boot/initramfs-linux.img
    append root=/dev/sda3 rw quiet


label MAIN
    com32 chain.c32
    append hd0 0

Tratado en la página de usuario de Djgera.

Usar memtest

Instale memtest+ desde los repositorios oficiales.

Use la secciónLABEL para lanzar memtest:

/boot/syslinux/syslinux.cfg
...
 LABEL memtest
         MENU LABEL Memtest86+
         LINUX ../memtest86+/memtest.bin
...

HDT

HDT (Hardware Detection Tool) es un instrumento para visualizar información sobre el hardware. Como siempre, el archivo .c32 debe ser copiado o debe crearse un enlace simbólico en /boot/syslinux/. Para obtener información del dispositivo PCI, o bien copie, o bien cree un enlace simbólico, de /usr/share/hwdata/pci.ids a /boot/syslinux/pci.ids y añada lo siguiente al archivo de configuración:

/boot/syslinux/syslinux.cfg
 LABEL hdt
         MENU LABEL Hardware Info
         COM32 hdt.c32

Reinicio y apagado

Use la siguiente sección para reiniciar o apagar su equipo:

/boot/syslinux/syslinux.cfg
 LABEL reboot
         MENU LABEL Reboot
         COM32 reboot.c32
 
 LABEL poweroff
         MENU LABEL Power Off
         COMBOOT poweroff.com

Limpiar el menú

Para borrar la pantalla al salir del menú, añada la siguiente línea:

/boot/syslinux/syslinux.cfg
 MENU CLEAR

Redistribución del teclado

Si tiene que editar a menudo sus parámetros de arranque, es posible que desee volver a asignar la distribución del teclado. Esto le permite introducir "=", "/" y otros caracteres fácilmente con un teclado no americano.

Primero tiene que crear una distribución de teclado compatible (por ejemplo, con uno español):

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

Con privilegios root, copie es.ktl a /boot/syslinux/ y establezca como propietario a root:

# chown root:root /boot/syslinux/es.ktl

Ahora edite syslinux.conf y añada:

/boot/syslinux/syslinux.cfg
 KBDMAP es.ktl

Ocultar el menú

Utilice la opción:

/boot/syslinux/syslinux.cfg
 MENU HIDDEN

para ocultar el menú mientras se muestra sólo el tiempo de espera. Presione cualquier tecla para que aparezca el menú.

Pxelinux

Nota: Syslinux no disponde de un stack de red UEFI, por lo que no será posible utilizar syslinux-efi-gitAUR (a diferencia de #GRUB con el que sí es posible) para obtener el kernel e initramfs a través de un servidor tftp; pxelinux todavía funciona bien arrancando con el PXE clásico

Pxelinux es proporcionado por syslinux.

Copie el cargador de arranque pxelinux (proporcionado por el paquete syslinux) en el directorio de arranque del cliente.

# cp /usr/lib/syslinux/bios/pxelinux.0 "$root/boot"
# mkdir "$root/boot/pxelinux.cfg"

También crearemos el directorio pxelinux.cfg, que es donde pxelinux buscará los archivos de configuración por defecto. Dado que no se intanta hacer distinciones entre distintos MAC de varios equipos, se creará el archivo de configuración default.

# vim "$root/boot/pxelinux.cfg/default"
default linux

label linux
kernel vmlinuz-linux
append initrd=initramfs-linux.img quiet ip=:::::eth0:dhcp nfsroot=10.0.0.1:/arch

O, si se está usando NBD, utilice la siguiente línea append :

append ro initrd=initramfs-linux.img ip=:::::eth0:dhcp nbd_host=10.0.0.1 nbd_name=arch root=/dev/nbd0
Nota: Tendrá que cambiar nbd_host y/o nfsroot, respectivamente, para que coincida con la configuración de red (la dirección del servidor NFS/NBD)

La sintaxis de configuración pxelinux es idéntica a syslinux; consulte la documentación de los desarrolladores para obtener más información .

E kernel e initramfs serán transferidos vía TFTP, por lo que las rutas serán las relativas al root del servitor TFTP. En otro caso, el sistema de archivos root puede ser el propio del montado mediante NFS, en cuyo caso la ruta será la relativa al root del servidor NFS.

Para cargar pxelinux, sustituya filename "/grub/i386-pc/core.0"; en /etc/dhcpd.conf con filename "/pxelinux.0"

Solución de Problemas

Utilizar el prompt de Syslinux

Es posible escribir el valor del parámetro LABEL correspondiente al sistema operativo que se quiere ejecutar (según su syslinux.cfg). Si ha usado la configuración de ejemplo, escriba:

boot: arch

Si se obtiene un error al cargar el archivo de configuración, es posible pasar manualmente el parámetro del boot, por ejemplo:

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

Si no se tiene acceso a boot: en ramfs, y cuando sea incapaz temporalmente de arrancar el kernel, prosiga como sigue:

1. Cree un directorio temporal, donde montar la partición root (si no existe ya):
 # mkdir -p /new_root
2. Monte / en /new_root (en el caso de que /boot/ esté en una partición separada, tendrá que montar ambas):
Nota: Si /boot está en una partición ext2 entonces busybox no se puede montar.
 # mount /dev/sd[a-z][1-9] /new_root
3. Use vim y modifique syslinux.cfg de acuerdo a sus necesidades y guarde el archivo.
4. Reinicie.

Fallo de fsck en la partición root

En el caso de una eventual partición root gravemente dañada (con el journal dañado), abra la shell de emergencia de Syslinux y monte el sistema de archivo root:

# mount /dev/root partition /new_root

Y obtenga el ejecutable tune2fs binary que se encuentra en la partición root partition (el cual no está incluido en Syslinux):

# cp /new_root/sbin/tune2fs /sbin/

Siga con las instrucciones descritas en ext2fs: no external journal para crear un journal nuevo para la partición root.

Default o UI no encontrado en su equipo

Algunos fabricantes de placas madre no proporcionan buena compatibilidad para arrancar desde dispositivos USB u otros. Mientras que una unidad USB con formato ext4 puede permitir el arranque en un equipo más reciente, algunos equipos antiguos pueden bloquearse si la partición de arranque que contiene el kernel y el initrd no está en una partición FAT16. Para evitar que una máquina antigua cargándose con ldlinux falle al leer syslinux.cfg, use cfdisk para crear una partición FAT16 (<= 2GB) y formatearla usando dosfstools:

# mkfs.msdos -F 16 /dev/sda1

a continuación, instale y configure Syslinux.

Missing operating system

Si aparece este mensaje, compruebe si la partición que contiene /boot tiene el flag de arranque habilitado. Si el flag está activado, entonces, tal vez, esta partición comienza en el sector 1 en vez del 63 o 2048. Compruebe esta circunstancia con fdisk -l. Si se inicia en el sector 1, se puede mover la partición(s) con gparted desde un disco de rescate. O bien, si tiene una partición boot separada, puede hacer una copia de seguridad de /boot con:

# cp -a /boot /boot.bak

y luego arrancar con el disco de instalación de Arch. A continuación, use cfdisk para borrar la partición /boot, y volver a crearla. Esta vez se debe comenzar en el sector adecuado, 63. Ahora monte sus particiones y efectue un chroot en el sistema montado, como se describe en la Beginners guide (guía de principiantes). Restaure /boot con la orden:

# cp -a /boot.bak/* /boot

Compruebe que /etc/fstab es correcto. Entonces, ejecute:

# syslinux-install_update -iam

y reinicie.

También recibirá este error si está tratando de arrancar desde una matriz RAID md 1 creada con una versión de los metadatos no soportada por Syslinux. A partir de agosto de 2013 mdadm creará, de forma predeterminada, una matriz con la versión 1.2 de los metadatos, pero Syslinux tan solo soporta la versión 1.0. Si este es el caso, tendrá que volver a crear su matriz RAID pasando la opción --metadata=1.0 para mdadm.

¡Se inicia Windows en vez de Syslinux!

Solución: Asegúrese de que la partición que contiene /boot tiene el indicador (flag) boot activo. También, asegúrese de que el indicador boot no está activado en la partición de Windows. Consulte la sección de instalación anterior.

El MBR que viene con Syslinux busca la primera partición activa que tiene el flag boot habilitado. Es probable que Syslinux encontrase primero la partición de Windows y que la misma tuviese el flag boot activo. Si lo desea, es posible utilizar tambien el MBR porporcionado por Windows o MS-DOS fdisk.

Entradas del menú sin ningún efecto

Si se selecciona una entrada del menu de arranque y no sucede nada, tan sólo "refresca" el menú, probablemente signifique que tiene un error en el archivo syslinux.cfg. Presione Tab y modifique los parámetros del boot. Alternativamente, pulse Esc y escriba en el LABEL de su entrada de arranque (por ejemplo, arch).

Imposible eliminar ldlinux.sys

El archivo ldlinux.sys tiene establecido el atributo de inmutable, para prevenir que pueda ser borrado o sobreescrito. Esto implica que el sector en el que reside el archivo en cuestión no debe cambiar, de lo contrario Syslinux tendrá que ser reinstalado. Para ello tendrá que eliminarlo, ejecutando las siguientes órdenes:

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

Se visualiza un cuadrado blanco en el ángulo superior izquierdo cuando se utiliza vesamenu

Problemas: A partir de linux-3.0, el controlador de modesetting trata de mantener el contenido actual de la pantalla después de cambiar la resolución (por lo menos, lo hace con mi Intel, al tener Syslinux en modo texto). Parece que esto va mal cuando se combina con el módulo vesamenu en Syslinux (el bloque blanco es, en realidad, un intento de mantener el menú de Syslinux, pero el controlador no logra captar la imagen de la modalidad gráfica vesa).

Si tiene una resolución personalizada y se utiliza vesamenu junto con modesetting, pruebe insertando lo siguiente en syslinux.cfg para remover el bloque blanco y continuar el arranque en modo gráfico:

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

Cargar Windows no funciona, cuando se instala en otra unidad

Si Windows está instalado en una unidad diferente a la de Arch y tiene problemas para cargarlo, pruebe la siguiente configuración:

LABEL Windows
       MENU LABEL Windows
       COM32 chain.c32
       APPEND mbr:0xdfc1ba9e swap

sustituya el código mbr con el de la unidad de windows (puede ver cómo más arriba), y añada swap a las opciones.

Véase también