Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previaPróxima revisiónAmbos lados, revisión siguiente |
es:howtos:network_services:nfs_root [2019/02/20 20:23 (UTC)] – [Creating the rootfs] slackwarespanol | es:howtos:network_services:nfs_root [2019/02/22 21:25 (UTC)] – [Configurando LILO] slackwarespanol |
---|
Ahora necesitamos manipular algo para el instalador de Slackware. Con fdisk, cree una sola partición en su disco duro (/dev/sda1). Desafortunadamente, una partición válida en una unidad conectada al sistema es un requisito para que el instalador se ejecute. No se preocupe, solo eliminaremos toda esta máquina virtual cuando hayamos terminado, así que no hay problema. | Ahora necesitamos manipular algo para el instalador de Slackware. Con fdisk, cree una sola partición en su disco duro (/dev/sda1). Desafortunadamente, una partición válida en una unidad conectada al sistema es un requisito para que el instalador se ejecute. No se preocupe, solo eliminaremos toda esta máquina virtual cuando hayamos terminado, así que no hay problema. |
| |
Ahora ejecuta 'setup'. | Ahora ejecute 'setup'. |
| |
* Mapea el teclado como quieras | * Mapea el teclado como quieras |
* No cree un bootdisk | * No cree un bootdisk |
* No instale LILO. | * No instale LILO. |
Cuando termine, ahora debería encontrar una raíz fs 'instalada' en el directorio del servidor. Si planea usarlo con más de un thin client, entonces sería un buen momento para realizar una copia de respaldo antes de iniciarlo. | Cuando termine, ahora debería encontrar una raíz fs 'instalada' en el directorio del servidor. Si planea usarlo con más de un cliente liviano, entonces sería un buen momento para realizar una copia de respaldo antes de iniciarlo. |
| |
| |
==== Creating the kernel ==== | ==== Creando el kernel ==== |
| |
The full huge kernel that comes with Slackware 14.2 is close to providing everything we need, but we still need to recompile it. I'd recommend doing the compilation on a 32-bit virtual machine if you are targeting a 32-bit thin client, or 64-bit if your thin client is 64-bit. There are ways to avoid this and cross-compile kernels 32->64 bit and visa versa but virtual machines are cheap and life is short: | El enorme kernel completo que viene con Slackware 14.2 está cerca de proporcionar todo lo que necesitamos, pero aún necesitamos recompilarlo. Recomendaría hacer la compilación en una máquina virtual de 32 bits si está apuntando a un cliente liviano de 32 bits, o de 64 bits si su cliente liviano es de 64 bits. Hay formas de evitar esto y compilar de forma cruzada los núcleos de 32-> 64 bits y viceversa, pero las máquinas virtuales son baratas y la vida es corta: |
| |
<code># cd /usr/src/linux | <code># cd /usr/src/linux |
# make menuconfig</code> | # make menuconfig</code> |
| |
Configuration order is important, as selecting certain options makes others available. First off we will need a network driver compiled into the kernel for the NIC we're going to use. For VirtualBox the default NIC is PCnet32, an lspci will probably tell you yours: | El orden de configuración es importante, ya que la selección de ciertas opciones hace que otras estén disponibles. Primero, necesitaremos un controlador de red compilado en el kernel para la NIC que vamos a utilizar. Para VirtualBox, la NIC predeterminada es PCnet32, y lspci probablemente le dirá la suya: |
| |
<code>Device Drivers -> Network Device Support -> Ethernet driver support -> AMD PCnet32 PCI support <*></code> | <code>Device Drivers -> Network Device Support -> Ethernet driver support -> AMD PCnet32 PCI support <*></code> |
| |
Make sure this is compiled into the kernel (e.g. hitting 'y'). | Asegúrate de que esto esté compilado en el kernel (por ejemplo, presionando 'y'). |
| |
[OPTIONAL] We also need to tell the kernel which IP address to use, which can be set statically, but DHCP is much easier, so generally you will want to include these options: | [OPCIONAL] También debemos decirle al núcleo qué dirección IP usar, que se puede configurar de forma estática, pero DHCP es mucho más fácil, por lo que generalmente querrá incluir estas opciones: |
| |
<code>Networking support -> Networking options -> IP: kernel level autoconfiguration [*] | <code>Networking support -> Networking options -> IP: kernel level autoconfiguration [*] |
IP: DHCP support [*]</code> | IP: DHCP support [*]</code> |
| |
Finally, we absolutely need the support for Root FS on NFS: | Finalmente, absolutamente necesitamos el soporte para Root FS en NFS: |
| |
<code>File Systems -> Network File systems -> Root file system on NFS [*]</code> | <code>File Systems -> Network File systems -> Root file system on NFS [*]</code> |
| [OPCIONAL] Es bastante útil agregar una versión local a esta versión del kernel. Recomiendo hacer esto para diferenciarlo de su gran kernel estándar de Slackware y evitar sobrescribir los módulos por error. Solo podemos añadir '-nfsroot': |
[OPTIONAL] It's pretty useful to append a local version to this kernel release. I'd advise doing this to differentiate it from your standard Slackware huge kernel and avoid clobbering the modules from that by mistake. We can just add '-nfsroot': | |
| |
<code>(-nfsroot) General Setup -> Local version - append to kernel release</code> | <code>(-nfsroot) General Setup -> Local version - append to kernel release</code> |
| |
Save the configuration and then do a: | Guarde la configuración y luego haga un: |
| |
<code># make bzImage</code> | <code># make bzImage</code> |
| |
While that build is running, it's time to configure LILO. | Mientras se ejecuta esa compilación, es hora de configurar LILO. |
| |
| |
==== Configuring LILO ==== | ==== Configurando LILO ==== |
| |
Let's call the kernel /boot/vmlinuz-nfsroot. Add a section to the lilo.conf file: | Llamemos al kernel /boot/vmlinuz-nfsroot. Agregue una sección al archivo lilo.conf: |
| |
<code>image=/boot/vmlinuz-nfsroot | <code>image=/boot/vmlinuz-nfsroot |
append= "root=/dev/nfs ip=dhcp nfsroot=172.17.0.80:/nfs_share,v3 rw"</code> | append= "root=/dev/nfs ip=dhcp nfsroot=172.17.0.80:/nfs_share,v3 rw"</code> |
| |
If you didn't want to use dhcp you'll now need to have a read of | Si no desea utilizar dhcp, ahora tendrá que leer Documentation/filesystems/nfs/nfsroot.txt en las fuentes del kernel para descubrir las muchas opciones que puede |
Documentation/filesystems/nfs/nfsroot.txt in the kernel sources to figure out the many options that you can | incluir para ip= distinto de 'dhcp'. |
include for ip= other than 'dhcp'. | |
| |
Obviously keep your default linux kernel in another image= section so you can switch between booting the nfsroot and the normal kernel to play around with this stuff. | Obviamente, mantenga su kernel de Linux predeterminado en otra sección image = para que pueda cambiar entre el arranque de nfsroot y el kernel normal para jugar con estas cosas. |
| |
You cannot specify a normal root= entry in this section because LILO doesn't recognise /dev/nfs for root (the device doesn't actually exist to LILO). So instead just specify it in the append= line which LILO doesn't try to interpret, and LILO will include this extra nfsroot image without error. | No puede especificar una entrada normal de root= en esta sección porque LILO no reconoce /dev/nfs para root (el dispositivo no existe realmente para LILO). Entonces, en lugar de eso, simplemente especifíquelo en la línea append= que LILO no intenta interpretar, y LILO incluirá esta imagen nfsroot adicional sin error. |
| |
The v3 seems to be really important in making anything at all happen on boot. If that isn't set, no communication seems to occur. | La v3 parece ser realmente importante para hacer que suceda algo en el arranque. Si eso no está establecido, ninguna comunocación ocurrirá. |
| |
The 'rw' is also important. It prevents the fsck of the root fs. because root is NFS and can't be checked. Slackware won't boot properly if we give 'ro'. Instead of using 'rw' you could optionally hack fsck out of the Slackware startup scripts on your NFS root, however simply using 'rw' is quicker (albeit dirtier). | El 'rw' también es importante. Previene el fsck de la raíz fs. porque la raíz es NFS y no se puede verificar. Slackware no arranca correctamente si damos 'ro'. En lugar de usar 'rw', opcionalmente podría hackear fsck de los scripts de inicio de Slackware en su raíz NFS, sin embargo, usar 'rw' es más rápido (aunque más sucio). |
| |
With the kernel compilation finished, copy the kernel into the /boot directory and rename it: | Con la compilación del kernel terminada, copie el kernel en el directorio /boot y renómbrelo: |
| |
<code>cp /usr/src/linux/arch/x86/boot/bzImage /boot/vmlinuz-nfsroot</code> | <code>cp /usr/src/linux/arch/x86/boot/bzImage /boot/vmlinuz-nfsroot</code> |
| |
It may be created elsewhere than arch/x86 depending on your architecture, e.g. x64, arm. | Puede crearse en otro lugar que no sea arch/x86 dependiendo de su arquitectura, por ejemplo. x64, arm. |
| |
Don't forget to run LILO: | No se olvide de ejecutar LILO: |
| |
<code># lilo</code> | <code># lilo</code> |