HowTo:PostInstall:Baselayout2
De Luispa
Introducción
Tal como se describe en la guía de migración, Baselayout proporciona un conjunto básico de archivos que necesita cualquier sistema para funcionar correctamente, tal como /etc/hosts. También proporciona la disposición básica del sistema de archivos usado por Gentoo (por ejemplo, los directorios /etc, /var, /usr, /home).
Por otro lado, OpenRC es un sistema de arranque (rc system) gestionado por dependencias que trabaja con cualquier init proporcionado por el sistema, normalmente /sbin/init. Sin embargo, no es un reemplazo para /sbin/init. El init por defecto usado por Gentoo Linux es sys-apps/sysvinit, mientras que Gentoo/FreeBSD usa el init de FreeBSD provisto por sys-freebsd/freebsd-sbin.
La razón por la que voy a migrar a Baselayout 2 + OpenRC es por dos motivos, el primero es evitar las limitaciones de baselayout 1 que lo han hecho obsoleto y la versión 2 es la de futuro.
Instalación de paquetes
Tras leer la documentación de la guía de migración he observado que no falta la documentación paso a paso y además no está especificado qué hacer para un sistema de 64bits. En mi caso he tenido que realizar lo siguiente:
- Preparo el fichero package.keywords.
# Ultimas versiones para Baselayout 2 + OpenRC =sys-fs/cryptsetup-1.0.6-r2 ~amd64 =sys-fs/udev-141 ~amd64 =sys-apps/sysvinit-2.86-r12 ~amd64 =sys-apps/openrc-0.4.3-r3 ~amd64 =sys-apps/baselayout-2.0.1 ~amd64
- Realizo la instalación de cryptsetup (no hago todo de golpe, voy uno a uno)
| Código:
# emerge -v cryptsetup
|
# emerge -v cryptsetup These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] sys-fs/cryptsetup-1.0.6-r2 [1.0.5-r1] USE="nls -dynamic (-selinux)" 397 kB : |
- Ejecuto etc-update
Nota: En mi caso no utilizo filesystems encriptados así que no se modifica o necesita hacer nada adicional
# etc-update
- Una vez que termina, hacer la instalación de udev
| Código:
# emerge -v udev
|
# emerge -v udev These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] sys-fs/cryptsetup-1.0.6-r2 [1.0.5-r1] USE="nls -dynamic (-selinux)" 397 kB : |
- Ejecuto etc-update
Nota: En mi caso los cambios son triviales y los acepto
# etc-update
Nota: Es muy importante que recompiles HAL en este punto
- Una vez que termina, recompilar hal
| Código:
# emerge -v hal
|
bolica ~ # emerge -v hal |
- Una vez que termina, hacer la instalación de sysvinit
| Código:
# emerge -v sysvinit
|
bolica ~ # emerge -v sysvinit These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] sys-apps/sysvinit-2.86-r12 [2.86-r10] USE="(-ibm) (-selinux) -static" 0 kB Total: 1 package (1 upgrade), Size of downloads: 0 kB |
- Ejecuto etc-update
Nota: Acepto los cambios en el inittab, dado que no lo he modificado respecto al original
# etc-update
- A continuación ejecuto la instalación de baselayout2 + openrc
| Código:
# emerge -v openrc
|
bolica ~ # emerge -v openrc These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] sys-apps/baselayout-2.0.1 [1.12.11.1] USE="-build (-bootstrap%) (-static%) (-unicode%*)" 23 kB [ebuild N ] sys-apps/openrc-0.4.3-r3 USE="ncurses pam unicode -debug" 143 kB : : * /etc/conf.d/rc is no longer used for configuration. * Please migrate your settings to /etc/rc.conf as applicable * and delete /etc/conf.d/rc * Auto-adding 'termencoding' service to your boot runlevel * Auto-adding 'bootmisc' service to your boot runlevel * Auto-adding 'fsck' service to your boot runlevel * Auto-adding 'hostname' service to your boot runlevel * Auto-adding 'hwclock' service to your boot runlevel * Auto-adding 'localmount' service to your boot runlevel * Auto-adding 'mtab' service to your boot runlevel * Auto-adding 'net.lo' service to your boot runlevel * Auto-adding 'procfs' service to your boot runlevel * Auto-adding 'root' service to your boot runlevel * Auto-adding 'swap' service to your boot runlevel * Auto-adding 'sysctl' service to your boot runlevel * Auto-adding 'termencoding' service to your boot runlevel * Auto-adding 'urandom' service to your boot runlevel * Auto-adding 'device-mapper' service to your boot runlevel * Add on services (such as RAID/dmcrypt/LVM/etc...) are now stand alone * init.d scripts. If you use such a thing, make sure you have the * required init.d scripts added to your boot runlevel. * Converting your /etc/modules.autoload.d/ files to /etc/conf.d/modules * Auto adding udev init script to the sysinit runlevel * You should now update all files in /etc, using etc-update * or equivalent before restarting any services or this host. * * Please read the migration guide available at: * http://www.gentoo.org/doc/en/openrc-migration.xml >>> Auto-cleaning packages... >>> No outdated packages were found on your system. * GNU info directory index is up-to-date. * IMPORTANT: 15 config files in '/etc' need updating. * See the CONFIGURATION FILES section of the emerge * man page to learn how to update config files. |
Aviso: NO HACER REBOOT
Terminar la migración
- Una vez más, recomiendo leer la guía de migración,
- Me guardo una copia de todos los daemons que estoy arrancando
- Ejecuto etc-update y detecta 15 ficheros a cambiar. Los examino despacio y los proceso los 15.
/etc/conf.d/bootmisc Acepto la nueva versión /etc/conf.d/consolefont Lo adapto a mi configuración /etc/init.d/consolefont Acepto la nueva versión /etc/conf.d/hostname Lo adapto a mi configuración /etc/hosts Lo adapto a mi configuración /etc/conf.d/hwclock Lo adapto a mi configuración /etc/conf.d/keymaps Lo adapto a mi configuración /etc/init.d/keymaps Acepto la nueva versión /etc/conf.d/modules Acepto la nueva versión /etc/profile Lo adapto a mi configuración /etc/protocols Acepto la nueva versión /etc/rc.conf Acepto la nueva versión /etc/sysctl.conf Lo adapto a mi configuración /etc/conf.d/urandom Acepto la nueva versión
- Verifico el fichero timezone
Europe/Madrid
- Compruebo como me ha migrado desde /etc/modules.autoload.d/kernel-2.6 a /etc/conf.d/modules y añadido lo siguiente
### START: Auto-converted from kernel-2.6
# /etc/modules.autoload.d/kernel-2.6: kernel modules to load when system boots.
#
# Note that this file is for 2.6 kernels.
#
# Add the names of modules that you'd like to load when the system
# starts into this file, one per line. Comments begin with # and
# are ignored. Read man modules.autoload for additional details.
# For example:
# aic7xxx
# Driver tarjeta LAN Realtek 8111D
# r8168
# Para las pruebas de VMWare
modules_2_6="${modules_2_6} fuse"
module_fuse_args_2_6=""
modules_2_6="${modules_2_6} parport"
module_parport_args_2_6=""
modules_2_6="${modules_2_6} parport_pc"
module_parport_pc_args_2_6=""
# iptables: Filtrado por physdev
modules_2_6="${modules_2_6} xt_physdev"
module_xt_physdev_args_2_6=""
# Para VirtualBox
modules_2_6="${modules_2_6} vboxdrv"
module_vboxdrv_args_2_6=""
modules_2_6="${modules_2_6} vboxnetflt"
module_vboxnetflt_args_2_6=""
# Para poder montar imagenes ISO
# Un ejemplo: mount -o loop -t iso9660 /data/virtualbox/systemrescuecd-x86-1.1.6.iso /mnt/cdrom
modules_2_6="${modules_2_6} loop"
module_loop_args_2_6=""
# Para poder trabajar con otros tipos de filesystems
modules_2_6="${modules_2_6} ntfs"
module_ntfs_args_2_6=""
# jfs
# xfs
# Para tunel GRE
modules_2_6="${modules_2_6} ip_gre"
module_ip_gre_args_2_6=""
# Para tunel IPSec OPENVPN
modules_2_6="${modules_2_6} tun"
module_tun_args_2_6=""
### END: Auto-converted from kernel-2.6
- Verifico los servicios que arrancarán en fase boot. Los principales están presentes: root, procfs, mtab, swap y fsck
# ls -l /etc/runlevels/boot/ total 0 lrwxrwxrwx 1 root root 21 feb 8 18:43 alsasound -> /etc/init.d/alsasound lrwxrwxrwx 1 root root 20 jun 10 19:46 bootmisc -> /etc/init.d/bootmisc lrwxrwxrwx 1 root root 23 feb 7 01:09 consolefont -> /etc/init.d/consolefont lrwxrwxrwx 1 root root 25 jun 10 19:46 device-mapper -> /etc/init.d/device-mapper lrwxrwxrwx 1 root root 16 jun 10 19:46 fsck -> /etc/init.d/fsck lrwxrwxrwx 1 root root 20 jun 10 19:46 hostname -> /etc/init.d/hostname lrwxrwxrwx 1 root root 19 jun 10 19:46 hwclock -> /etc/init.d/hwclock lrwxrwxrwx 1 root root 20 feb 28 17:11 iptables -> /etc/init.d/iptables lrwxrwxrwx 1 root root 19 feb 7 01:09 keymaps -> /etc/init.d/keymaps lrwxrwxrwx 1 root root 22 jun 10 19:46 localmount -> /etc/init.d/localmount lrwxrwxrwx 1 root root 19 feb 7 01:09 modules -> /etc/init.d/modules lrwxrwxrwx 1 root root 16 jun 10 19:46 mtab -> /etc/init.d/mtab lrwxrwxrwx 1 root root 18 jun 10 19:46 net.lo -> /etc/init.d/net.lo lrwxrwxrwx 1 root root 18 jun 10 19:46 procfs -> /etc/init.d/procfs lrwxrwxrwx 1 root root 16 jun 10 19:46 root -> /etc/init.d/root lrwxrwxrwx 1 root root 16 jun 10 19:46 swap -> /etc/init.d/swap lrwxrwxrwx 1 root root 18 jun 10 19:46 sysctl -> /etc/init.d/sysctl lrwxrwxrwx 1 root root 24 jun 10 19:46 termencoding -> /etc/init.d/termencoding lrwxrwxrwx 1 root root 19 jun 10 19:46 urandom -> /etc/init.d/urandom
- Verifico que el proceso de migración (es automático durante la instalación de openrc) añade udev a sysinit correctamente
# ls -l /etc/runlevels/sysinit total 0 lrwxrwxrwx 1 root root 17 jun 10 19:46 devfs -> /etc/init.d/devfs lrwxrwxrwx 1 root root 17 jun 10 19:46 dmesg -> /etc/init.d/dmesg lrwxrwxrwx 1 root root 16 jun 10 19:46 udev -> /etc/init.d/udev
- Verifico que el proceso de migración detectó que uso net.eth0 y net.eth1 y ha creado los links
bolica init.d # ls -al net* lrwxrwxrwx 1 root root 6 feb 7 01:06 net.eth0 -> net.lo lrwxrwxrwx 1 root root 6 feb 7 17:51 net.eth1 -> net.lo -rwxr-xr-x 1 root root 15179 jun 10 19:46 net.lo
- Compruebo la configuración de la red. Se cambia la sintaxis de /etc/conf.d/net. Hay un ejemplo en /usr/share/doc/openrc/net.example. Edito el fichero /etc/conf.d/net y lo adapto a la nueva sintaxis.
- Verifico que se ha creado el fichero /etc/91xsession
XSESSION=Gnome
- La variable EDITOR ya no se encuentra en /etc/rc.conf. Ambas variables EDITOR y PAGER, se configuran por defecto en /etc/profile. Cambie esto según su conveniencia en su archivo ~/.bashrc (o equivalente) o cree el archivo /etc/env.d/99editor y configure el valor por defecto del sistema allí. En mi caso lo he dejado en el /etc/profile
- Establezco la variable rc_logger a "YES" en el /etc/rc.conf, de modo que se registre (log) todo el arranque en /var/log/rc.log.
/etc/rc.conf rc_logger="YES"
Rearranque
- Una vez termiando todo lo anterior realizo un rearranque del equipo.
Conclusiones
El equipo rearranca correctamente, puedo verificar que aparentemente ha arrancado todo consultando el fichero /var/log/rc.log. Lo único que me ha sorprendido es que el proceso de arranque silencioso con fbsplash ya no muestra la barra de progreso, pero al final todo acaba funcionando. Lo investigaré...
Enlaces y Créditos
| [1] | http://wiki.luispa.com/ | Página principal de LuisPa. |
| [2] | http://www.gentoo.org/doc/es/openrc-migration.xml | Guía de migración a Baselayout 2 + OpenRC. |
Volver a la página de Role como Estación de trabajo
--Luis 19:25 10 jun 2009 (CEST)

