viernes, 15 de septiembre de 2017

2.- Linux from Scratch bajo mi concepto

despues de borrar y borrar cosillas, me canse y crei capaz de empezar por otro lado: Linux desde cero. Mi plan es mas o menos asi:

1. Formatear un disco (con fdisk, diskpart, etc ?)
2. Ponerle MBR con install-mbr
3. Instalarle Grub con grub-install
4. Copiar un kernel

Mi objetivo es lograr todo esto desde la consola de comandos, pero para empezar voy a usar el instalador standard. Con este, mi proceso esta siendo asi:

1. Crear la tabla de particion. Para esto me ayudé con el video:
https://www.youtube.com/watch?v=AkkW63toTOM
aunque no separé / y /home, sino que hice solo /. /boot le asigne 250MB y swap 600MB. El disco virtual era de unos 6 GB
Al aceptar arranca ubuntu con una rutina de "installing the system"

Con un poco de búsqueda, me parecio que lo mejor para lograr mi objetivo es Gentoo Linux.

El Manual de Gentoo Linux recomienda dos caminos para la particion. Entre Fdisk y parted, escoji fdisk por parecer mas antiguo y tener mas adeptos asi como funciones. parted parece una implementacion que salva a los discos mayores de 2TB, cosa que hasta podría esperarse de fdisk en un futuro (quizas ya ahora, y estoy en el pasado)

Particion de Arranque BIOS:
fdisk
d (si se desea eliminar particiones existentes, mi DD virtual estaba nuevecito)
n (nueva)
p (primaria)
1 (particion no. 1)
 2048 (primer sector)
+2M (ultimo)
t 4
Particion de Arranque
default (al final de la anterior)
+128M
t 83 (linux)

Particion SWAP
default (al final de la anterior)
+1024M
t 84 (linux swap)Particion Root / 
default (al final de la anterior)
bis zum ende (default)
t 83 (linux)

Crear los sistemas de archivos:
mkfs.ext2 /dev/sda2
mkfs.ext4 /dev/sda4

el 2 con 2 y el 4 con 4 es solo coincidencia. Systema de Archivos EXT2 se utiliza para boot y ext4 es mejor para los archivos.

Inicializar y Activar la partition swap
mkswap /dev/sda3
swapon /dev/sda3

montar root
mount /dev/sda4 /mnt/gentoo

Copiar el Stage3 adentro
cd /mnt/gentoo
wget http://distfiles.gentoo.org/releases/amd64/autobuilds/20170824/stage3-amd64-nomultilib-20170824.tar.bz2 (puede variar segun version)

desempaquetar el bz2
tar xvjpf stage3-*.tar.bz2 --xattrs --numeric-owner


montar la particion gentoo
mount /dev/sda4 /mnt/gentoo

configuring compiler option
nada me molesta mas que un handbook o tutorial que parezca muy facil, explique banalmente y mande a leer otros manuales indecifrables. Exactamente esto es lo que este apartado de la guia de gentoo me parece.
Bueno, pero a lo hecho pecho y hay que seguir adelante.
IMPORTANTE: si reinicias la maquina, tendras que remontar la particion gentoo otra vez

Critica:
el trabajo de la gente de gentoo es maravilloso. Se puede aprender mucho a traves de este sistema. Pero la "independizacion" me parece perjudicial. Me explico: gentoo ofrece comodas herramientas para la configuracion como portage o emerge. Estas herramientas son lamentablemente solo bajo gentoo disponible. Aprender a configurar linux a traves de esto significa aprender gentoo y no linux estandar.

selecionar los mirrors:
otra vez a traves de una herramienta gentoo, aunque es bastante rudimentaria y a pesar de ello útil, ya que si no habria que escribir largamente direcciones de url´s en el archivo make.conf en una variable llamada GENTOO_MIRRORS

mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

mkdir /mnt/gentoo/etc/portage/repos.conf

cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

Copiar informacion DNS
cp -L /etc/resolv.conf /mnt/gentoo/etc/

Montar archivos de sistema necesarios
root #mount -t proc /proc /mnt/gentoo/proc
root #mount --rbind /sys /mnt/gentoo/sys
root #mount --make-rslave /mnt/gentoo/sys
root #mount --rbind /dev /mnt/gentoo/dev
root #mount --make-rslave /mnt/gentoo/dev

descartar algun problema de gentoo con el cd
root #test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #mount -t tmpfs -o nosuid,nodev,noexec shm /dev/shm
root # chmod 1777 /dev/shm
entrar en el nuevo ambiente
root #chroot /mnt/gentoo /bin/bash
root #source /etc/profile
root #export PS1="(chroot) $PS1"

Montar la particion boot
el manual dice, "crear la carpeta boot", pero ya esta creada
root #mount /dev/sda2 /boot

otra opcion gentoo: 
Configurar Portage
 root #emerge-webrsync
 hasta aqui llege donde un error se repite:
rsync_ recv_generator mkdir "/usr/portage/xxxxx failed: no space left on device (28)
parece ser que la particion esta llena, y como el disco es de alrededor 8 GB casi no puede ser, entonces el problema parece estar en los inodos. Pero antes de entrar en la lata de buscar un error en un sistema de test del que no estoy ni tan convencido, prefiero continuar como si nada pasara...

eselect profile list
eselect profile set 2 (el standard, paso innecesario)

Critica:
No encuentro como instalar 2 perfiles. El estandar es nomultilib que no incluye las librerias x32 pero si ademas quiero systemd no veo la forma de elegir los dos