Instalación de Arch Linux

En julio de 2012 se lanzó una nueva imagen de Arch Linux (201207) y, ese mismo día, decidí bajar y reinstalar mi sistema. Durante el proceso noté varios cambios tanto en la forma de instalar como en el funcionamiento de la distribución:
- Ya no existe el .iso con el core ni imágenes separadas para x86 y x64; la única versión disponible
para descarga es la
netinstall dual. - El Arch Linux Installation Framework (AIF) dejó de utilizarse.
- Se inició la migración de
SysVinitasystemd(usandoinitscripts).
El día en que salió la primera imagen sin AIF casi no había documentación explicando cómo instalar y me tocó romperme un poco la cabeza para lograrlo. Cuando por fin lo conseguí, empecé a escribir este tutorial, pero luego viajé (¡FISL13!) y lo dejé a medias.
Aprovechando un pequeño receso de fin de año, decidí reparticionar mi disco, reinstalar Arch desde cero en mi notebook y terminar de documentar el proceso de instalación aquí en el blog.
Usaré systemd nativo, sin rc.conf, y también explicaré cómo cifrar el disco usando
LVM on LUKS+dmcrypt.
Nota: Como explico en el about de este blog, escribo para mí mismo y solo explico las partes que me interesan y son compatibles con mi equipo (un Acer Aspire). No sigas este “tutorial” a ciegas; algunas cosas que me funcionan pueden ser diferentes en tu caso.
Disco de arranque
Hace mucho que no quemo CDs para instalar SOs. Normalmente uso un pendrive como medio de instalación, especialmente ahora que mi notebook ni tiene unidad óptica.
Para generar ese pendrive booteable, basta descargar el .iso y grabarlo con dd:
sudo dd if=archlinux.iso of=/dev/sdb
Eso funciona en la mayoría de los equipos, pero aparentemente la BIOS de mi notebook no reconoce el pendrive grabado de esa forma y se queda congelado en la pantalla de boot hasta remover el USB.
A base de pruebas, encontré dos soluciones:
Solución 1
Usar unetbootin para copiar el contenido del .iso e instalar syslinux como bootloader, y luego cambiar la etiqueta de la partición:
julio@acer ~> sudo mlabel -i /dev/sdb1 ::ARCH_201212Solución 2
Copiar los archivos del .iso al pendrive e instalar syslinux manualmente:
sudo fdisk /dev/sdb sudo mkfs.vfat -n ARCH_201212 /dev/sdb1 sudo mount /dev/sdb1 /media/pendrive sudo mount archlinux-2012.12.01-dual.iso /media/arch sudo cp -r /media/arch/* /media/pendrive/ sudo syslinux -s /dev/sdb1 cd /media/pendrive; sudo cp isolinux/isolinux.cfg syslinux.cfg
Instalación
Entra al Boot Manager de tu BIOS y bootea por el pendrive:
- IDE 0: TOSHIBA MK5055GSX (el disco)
- USB HDD: SanDisk (el pendrive)
Aparecerá un menú de boot. Elige Boot Arch Linux (x86_64) (mi sistema es 64 bits).
¿Recuerdan /arch/setup? Ya no existe. Desde la imagen de julio Arch dejó de usar AIF y
usa scripts de instalación. Ahora te dejan en un shell.
Particionado
El formato más recomendado es GPT. Tiene ventajas sobre MBR, como permitir discos de más de 2 TB y más de 4 particiones primarias.
Usaba GPT en mi instalación anterior, pero concluí que en mi caso es mejor seguir con MBR. Solo necesito 4 particiones primarias, mis discos tienen 2 TB o menos y mi placa madre usa BIOS y no UEFI. Este último detalle es importante si quieres dual boot con Windows.
-> Si tu tabla de particiones usa GPT:
root@archiso ~ # cgdisk /dev/sda
Obs.: Si tu placa usa BIOS y tus particiones usan GPT, necesitarás una partición de al menos 31 KiB
(recomendado 2 MB) para caber el core.img de Grub2
(más info).
-> Si tu tabla de particiones usa MBR (mi caso):
root@archiso ~ # cfdisk /dev/sda
Estado inicial:
Disk Drive: /dev/sda Size: 500.1 GiB Part Type: Pri/Log FS Type: Free Space Size (MB): 500107.87Partición de 50 GB para otro SO:
[ New ] » [Primary] » Size (in MB): 50G » [Beginning] » [ Type ] » Enter filesystem type: 86Partición para
/boot:[ New ] » [Logical] » Size (in MB): 100 » [Beginning] » [ Type ] » Enter filesystem type: 83Reservé 100 MB, pero con 50 MB alcanza.
Partición para LUKS (usaré LVM on LUKS):
[ New ] » [Logical] » Size (in MB): 450007.68 » [Beginning] » [ Type ] » Enter filesystem type: 8E
Guarda los cambios: [ Write ] » "yes" » [ Quit ] y verifica las particiones con fstab -l.
Shredding
Por seguridad, llena la partición LUKS con datos aleatorios:
root@archiso ~ # badblocks -c 10240 -wsvt random /dev/sda3
o
root@archiso ~ # dd if=/dev/urandom of=/dev/sda3 bs=4096
Obs.: Estos comandos tardan horas.
Cifrado: dm-crypt / LUKS
root@archiso ~ # cryptsetup -c <cipher> -y -s <key size> luksFormat /dev/<partition name>
Usaremos AES en modo XTS con 512 bits. Es bastante seguro y no noté pérdida de rendimiento significativa:
# modprobe dm_mod
root@archiso ~ # cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda3
Escribe tu contraseña. El tamaño de la contraseña también es importante para la seguridad.
Verifica con cryptsetup luksDump /dev/sda3.
Desbloquea la partición
root@archiso ~ # cryptsetup luksOpen /dev/sda3 arch-luks
Enter passphrase for /dev/sda3:
Creación de particiones LVM
Crea un Physical Volume
root@archiso ~ # pvcreate /dev/mapper/arch-luks
Physical volume "/dev/mapper/arch-luks" successfully created
root@archiso ~ # pvdisplay
Crea un Volume Group
root@archiso ~ # vgcreate vg_arch /dev/mapper/arch-luks
Volume group "vg_arch" successfully created
root@archiso ~ # vgdisplay
Crea los Logical Volumes
Crea un LV para
/:root@archiso ~ # lvcreate -L 25G vg_arch -n root Logical volume "root" createdCrea un LV para
/var:No es muy común, pero se puede ganar rendimiento usando un sistema de archivos bueno con archivos pequeños, como ReiserFS.
root@archiso ~ # lvcreate -L 15G vg_arch -n var Logical volume "var" createdCrea un LV para
swap:root@archiso ~ # lvcreate -C y -L 4G vg_arch -n swap Logical volume "swap" createdCrea un LV para
/home, dejando espacio libre (25 GB) al final:root@archiso ~ # lvcreate -L 350G vg_arch -n home Logical volume "home" createdo, si sabes que no vas a redimensionar volúmenes después:
root@archiso ~ # lvcreate -l +100%FREE vg_arch -n home Logical volume "home" createdVerifica con
lvdisplay.
Formatea las particiones
root@archiso ~ # mkfs.ext2 -L boot /dev/sda2
root@archiso ~ # mkfs.btrfs -L root /dev/vg_arch/root
root@archiso ~ # mkfs.ext4 -L var /dev/vg_arch/var
root@archiso ~ # mkfs.ext4 -L home /dev/vg_arch/home
root@archiso ~ # mkswap -L swap /dev/vg_arch/swap
Para ahorrar espacio en disco
root@archiso ~ # tune2fs -m 1.0 /dev/vg_arch/var
root@archiso ~ # tune2fs -m 0.0 /dev/vg_arch/home
Monta las particiones
root@archiso ~ # mount /dev/vg_arch/root /mnt
root@archiso ~ # mkdir /mnt/{boot,home,var}
root@archiso ~ # mount /dev/vg_arch/var /mnt/var
root@archiso ~ # mount /dev/vg_arch/home /mnt/home
root@archiso ~ # mount /dev/sda2 /mnt/boot
root@archiso ~ # swapon /dev/vg_arch/swap
Conéctate a internet
Wi‑Fi
Si no tienes red cableada, conéctate a tu Wi‑Fi:
root@archiso ~ # wifi-menu wlan0Cable
Para red cableada:
root@archiso ~ # ip link set eth0 up #(equivalente a ifconfig eth0 up) root@archiso ~ # dhcpcd eth0
Instala el sistema base
Primero verifica si la fecha del sistema es correcta con date. Es importante para no tener
problemas al importar las claves PGP.
Si la fecha no es correcta, corrígela con timedatectl. Usa UTC. Ej.:
timedatectl set-time "2013-01-30 18:00:00"
Descarga los paquetes con pacstrap:
root@archiso ~ # pacstrap /mnt base{,-devel}
Total Download Size: 154.83 MiB
Total Installed Size: 579.00 MiB
Instala un bootloader (elegí grub2)
root@archiso ~ # pacstrap /mnt grub-bios
Nota: grub-bios es para BIOS; si tu placa usa UEFI, instala grub-efi-x86_64.
Genera /etc/fstab
root@archiso ~ # genfstab -U -p /mnt >> /mnt/etc/fstab
Verifica que fstab esté correcto. La opción -U hace que use UUIDs.
Haz chroot al sistema recién instalado
root@archiso ~ # arch-chroot /mnt
Es un buen momento para instalar vim, porque vamos a editar algunos archivos. Yo instalaré gvim,
porque viene compilado con “+xterm_clipboard”:
root@archiso ~ # pacman -S gvim
systemd vs. SysV
Hay polémica sobre si el cambio a systemd es bueno o no.
Leyendo Hacker News se nota que hay mucha gente insatisfecha, pero si todo funciona como Lennart Poettering explicó en una charla que vi y systemd posee todas las ventajas que los desarrolladores de Arch comentaron en el fórum, entonces la transición fue algo positivo.
En cualquier caso, si los devs están forzando un poco el cambio, mejor acostumbrarse desde ya. Por
lo tanto haré una instalación sin rc.conf, usando solo systemd.
Nota: Crea los archivos mencionados en los próximos pasos si aún no existen.
Locale
Descomenta en_US.UTF-8 UTF-8 y pt_BR.UTF-8 UTF-8 en /etc/locale.gen y luego ejecuta
locale-gen como root.
Crea /etc/locale.conf, que define la variable LANG:
LANG=en_US.UTF-8
Keymap y fuente
Descubre cuál archivo de /usr/share/kbd/keymaps/i386/qwerty/ corresponde a tu keymap y pruébalo
con loadkeys. Ej.:
- PT-BR:
loadkeys br-abnt2 - EN-US:
loadkeys us-acentos - EN-UK:
loadkeys uk
Descubre cuál archivo de /usr/share/kbd/consolefonts/ es la fuente que quieres y pruébala con
setfont. Ej.:
- Terminus:
setfont Lat2-Terminus16 - Lat9w:
setfont lat9w-16
Edita /etc/vconsole.conf para dejarlo permanente:
KEYMAP=us-acentos
FONT=Lat2-Terminus16
También existe la opción FONT_MAP, pero no es necesaria.
Zona horaria
Descubre cuál archivo de /usr/share/zoneinfo/ corresponde a tu región y subregión. En mi caso es
/usr/share/zoneinfo/America/Sao_Paulo.
Haz que /etc/localtime apunte a tu zona con un enlace simbólico:
sh-4.2# ln -s /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
P: ¿Qué pasó con /etc/timezone?
Reloj
Genera /etc/adjtime con hwclock. Recomiendo usar UTC.
sh-4.2# hwclock --systohc --utc
Si quieres sincronizar el reloj por internet, ejecuta ntpd -qg && hwclock -w como root.
Host
Crea /etc/hostname con el nombre de tu host:
sh-4.2# echo "acer" > /etc/hostname
Aparentemente ya no hace falta editar /etc/hosts después de este paso.
Red
Si usas Wi‑Fi, instala los paquetes para conectarte a redes inalámbricas. Instala también el firmware de tu placa si hace falta:
sh-4.2# pacman -S wireless_tools wpa_supplicant wpa_actiond dialog
Recomiendo activar net-auto-wireless:
sh-4.2# systemctl enable net-auto-wireless.service
Si sueles conectarte por cable, instala ifplugd y activa net-auto-wired para conectarte
automáticamente al enchufar el cable:
sh-4.2# systemctl enable net-auto-wired.service
HOOKS (initramfs)
En la línea HOOKS de /etc/mkinitcpio.conf, añade encrypt, lvm2 y resume antes de
filesystems (el orden importa). resume debe venir después de lvm2:
HOOKS="base udev autodetect modconf block encrypt lvm2 resume filesystems usbinput fsck"
Ejecuta mkinitcpio -p linux.
Configuración de GRUB
sh-4.2# grub-install --target=i386-pc --recheck --debug /dev/sda
sh-4.2# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
Edita /etc/default/grub:
GRUB_CMDLINE_LINUX="root=/dev/mapper/vg_arch-root cryptdevice=/dev/sda3:arch-luks resume=/dev/mapper/vg_arch-swap"
Crea una contraseña para impedir que editen GRUB. Redirige la salida a un archivo y escribe tu contraseña dos veces tras el comando:
sh-4.2# grub-mkpasswd-pbkdf2 > hash
El archivo hash tendrá una cadena de 256 caracteres parecida a:
grub.pbkdf2.sha512.10000.FEDCBA987689…EDCBFEDCBA9876543210123
Copia ese hash y añade lo siguiente a /etc/grub.d/00_header:
cat << EOF
set superusers="julio"
password_pbkdf2 julio grub.pbkdf2.sha512.10000.FEDCBA987689…EDCBFEDCBA9876543210123
EOF
Luego ejecuta:
sh-4.2# grub-mkconfig -o /boot/grub/grub.cfg
Parámetros del kernel
Me gusta quitar quiet de la línea linux en /boot/grub/grub.cfg para ver si todo va bien
durante el arranque.
Define la contraseña de root
sh-4.2# passwd
Reinicia el equipo
sh-4.2# exit
root@archiso# umount /mnt/{boot,var,home,}
root@archiso# reboot
Al reiniciar pedirá la contraseña de GRUB2 y la del volumen arch-luks.
Posinstalación
Inicia sesión como root usando la contraseña que definiste.
Conéctate a internet
Red cableada:
[root@acer ~] dhcpcd eth0Red inalámbrica:
[root@acer ~] wifi-menu wlan0
Pacman
Añade el repositorio [multilib]. Basta descomentar estas líneas en /etc/pacman.conf:
[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist
Añade también la línea ILoveCandy debajo de # Misc options solo por diversión 😉.
Claves PGP
[root@acer ~]# rm -r /etc/pacman.d/gnupg
[root@acer ~]# pacman-key --init
[root@acer ~]# pacman-key --populate archlinux
Mirrors
Edita /etc/pacman.d/mirrorlist. En vim: :%s/^[^\#]/\#S/. Luego descomenta solo unos 3 mirrors.
Instala algunos programas
Recomendaciones:
root@acer ~ # pacman -S zsh sudo \
alsa-utils pulseaudio pulseaudio-alsa pavucontrol paprefs \
xorg-server xorg-xinit xorg-server-utils xf86-video-intel lib32-intel-dri \
xf86-input-synaptics xf86-input-wacom libwacom xbindkeys xdotool \
awesome vicious wmname \
ttf-dejavu terminus-font ttf-inconsolata artwiz-fonts ttf-symbola \
feh imagemagick geeqie gimp scrot \
mpd ncmpcpp mplayer2 kid3 \
wget chromium firefox flashplugin \
acpid screen htop ntp \
python python2 python-pip python2-pip ipython ipython2 bpython bpython2 \
python2-psycopg2 python2-pygments python2-mechanize python2-imaging \
python2-beautifulsoup3 python2-beautifulsoup4 pep8-python2 pep8-python3 \
python2-lxml \
git mercurial svn ack gdb clang clang-analyzer cppcheck \
jdk7-openjdk irssi pidgin mutt thunderbird \
wicd samba openssh sshfs apache php php-apache postgresql pgadmin3 \
vidalia \
cups hplip gtranslator \
qalculate-gtk gnuplot texlive-most xournal \
libreoffice-{common,pt-BR,calc,writer,impress} stardict \
rsync mktorrent \
rxvt-unicode urxvt-perls terminator \
unrar zip p7zip \
virtualbox yajl \
vlock slock xautolock tree wireshark \
gparted gptfdisk dosfstools ntfsprogs mtools \
cpupower hdparm hddtemp lm_sensors hwinfo \
pysolfc \
ttf-symbola \
mpdscribble \
icedtea-web-java7 \
wine \
laptop-mode-tools
Es una lista de programas que suelo instalar en mi notebook. Elige solo los que necesites (no instales los drivers de Intel si tu placa es Nvidia, claro).
Sonido
ALSA ya viene con el kernel de Arch Linux.
Abre alsamixer, quita Mute del Master y sube el volumen. Prueba con speaker-test -c 2. Si
funciona, guarda la configuración del mixer con:
[root@acer ~]# alsactl store
Como uso más de una placa de sonido y envío audio de otra máquina por red, también me gusta tener
Pulseaudio funcionando (instalado antes).
Video - X11
Descubre tu placa con:
[root@acer ~]# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
Ya instalé los drivers de Intel (xf86-video-intel y lib32-intel-dri) antes.
Aumentar la seguridad de contraseñas
Hasta hace poco las contraseñas de usuarios en Linux se almacenaban en /etc/shadow usando MD5 por
defecto.
Considero MD5 muy débil y fácil de romper. Por suerte las versiones nuevas de shadow usan SHA-512 con 5000 rondas, mucho mejor. Si eres paranoico, puedes cambiar el algoritmo o aumentar rondas.
Mi algoritmo preferido para proteger contraseñas es bcrypt, que usa Blowfish internamente y, aunque no es exactamente una función hash, cumple el mismo propósito: a partir de una contraseña, genera una cadena irreversible para verificarla.
Vi que el manual de pam no cita bcrypt. Blowfish aparece en la lista, pero como es de cifrado simétrico (no hash), la contraseña sería reversible.
Así que elegí usar SHA-512 con muchas más rondas que el default, tan bueno como bcrypt. Modifica
/etc/pam.d/passwd a:
password required pam_unix.so sha512 rounds=65536 shadow nullok minlen=8 retry=3
Los usuarios creados a partir de ahora deberán crear contraseñas de al menos 8 caracteres, cuyo hash
usará SHA-512 con 65536 rondas. Para afectar cuentas actuales, recrea las contraseñas con passwd:
[root@acer ~] passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Puedes verificar el cambio en /etc/shadow:
[root@acer ~] cat /etc/shadow | grep root
Añade un usuario
[root@acer ~]# useradd -m -G wheel -s /bin/zsh julio
[root@acer ~]# chfn julio
[root@acer ~]# passwd julio
Una forma más fácil es con adduser del AUR:
[root@acer ~]# adduser
Login name for new user []: julio
User ID ('UID') [ defaults to next available ]:
Initial group [ users ]:
Additional groups (comma separated) []: audio,lp,optical,storage,video,wheel,games,power,scanner
Home directory [ /home/julio ]:
Shell [ /bin/bash ]: /bin/zsh
Expiry date (YYYY-MM-DD) []:
Sudo
Permite a los usuarios del grupo wheel usar sudo. Ejecuta visudo y descomenta
%wheel ALL=(ALL) ALL.
- Inicia sesión con el usuario creado.
Dotfiles, etc.
Oh-my-zsh
acer% git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
Copia tus claves pública y privada del backup
Clona mi repo de dotfiles en GitHub:
acer% git clone git@github.com:jbsilva/dotfiles.git
Otros dotfiles
Copia o enlaza cada dotfile y script a sus carpetas:
acer% ln -s /home/julio/dotfiles/home/julio/.vim ~/.vim
acer% ln -s /home/julio/dotfiles/home/julio/.vimrc ~/.vimrc
acer% ln -s /home/julio/dotfiles/home/julio/.zshrc ~/.zshrc
acer% ln -s /home/julio/dotfiles/home/julio/.gitconfig ~/.gitconfig
acer% mkdir ~/.config;
acer% ln -s /home/julio/dotfiles/home/julio/.config/awesome ~/.config
acer% ln -s /home/julio/dotfiles/home/julio/.config/sytemd ~/.config
acer% mkdir .mpd; touch database log pid state sticker.sql
acer% ln -s /home/julio/dotfiles/home/julio/.mpd/mpd.conf ~/.mpd
acer% ln -s /home/julio/dotfiles/home/julio/.mpd/playlists ~/.mpd
acer% mkdir .ncmpcpp
acer% ln -s /home/julio/dotfiles/home/julio/.ncmpcpp/config ~/.ncmpcpp
acer% ln -s /home/julio/dotfiles/home/julio/.xdefaults ~/.xdefaults
acer% ln -s /home/julio/dotfiles/home/julio/.xdefaults/Xdefaults ~/.Xdefaults
acer% rm .xinitrc; ln -s /home/julio/dotfiles/home/julio/.xinitrc
¡Listo! El sistema está configurado y listo. Inicia la interfaz gráfica con startx.
AUR y Yaourt/Packer
Instala Yaourt o Packer (elige uno) para facilitar instalar paquetes del AUR.
Yaourt:
julio@acer ~> wget https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz julio@acer ~> tar xvfz package-query.tar.gz; cd package-query julio@acer ~/package-query> makepkg julio@acer ~/package-query> sudo pacman -U package-query-1.0.1-1-x86_64.pkg.tar.xzjulio@acer ~> wget https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz julio@acer ~> tar xvfz yaourt.tar.gz; cd yaourt julio@acer ~/yaourt> makepkg julio@acer ~/yaourt> sudo pacman -U yaourt-1.1-1-any.pkg.tar.xzPacker:
Empecé a usar
Packerhace poco, pero parece más rápido y con menos problemas queYaourt.julio@acer ~> wget https://aur.archlinux.org/packages/pa/packer/packer.tar.gz julio@acer ~> tar xvfz packer.tar.gz; cd packer; makepkg julio@acer ~/packer> sudo pacman -U packer-20121228-1-any.pkg.tar.xz
Instala algunos paquetes del AUR
julio@acer ~> for p in {tofrodos,dropbox,urxvt-keyboard-select,urxvt-clipboard,rtorrent-pyro-git,otf-ipafont,mod_scgi,django-git,flexget,xtrlock,tor-browser-en}; do packer $p; done
Instala otros programas
- Instalar rutorrent por svn
Comando para montar el Volume Group: vgchange -a y vg_arch
Samba
Crear usuarios para Samba
julio@acer ~> sudo useradd guest
julio@acer ~> sudo pdbedit -a -u julio
julio@acer ~> sudo pdbedit -a -u guest
Iniciar el daemon con systemctl
julio@acer ~> sudo systemctl start smbd nmbd
Listar carpetas compartidas
En otras máquinas de la red, las carpetas compartidas pueden listarse con:
julio@acer ~> sudo smbclient -L 192.168.0.2 -U%
Acceder desde otros equipos
sudo mount -t cifs //192.168.0.2/acer /media/acer -o user=guest,password=senha_guest,workgroup=GRUPO,ip=192.168.0.2
o mejor, añade esto a /etc/fstab:
//192.168.0.2/musicas /media/rede cifs noauto,credentials=/etc/samba/smbcred 0 0
Donde /etc/samb/smbcred es algo como:
username=guest
password=senha_guest
workgroup=GRUPO
ip=192.168.0.2
Otras recomendaciones
Protege tu BIOS con contraseña para mayor seguridad
Guarda un backup del LUKS header
Conozco gente cuyo disco tuvo badblocks al inicio de la partición cifrada y terminó sin poder acceder a los archivos. Con backup del header probablemente podrían haber recuperado algo.
julio@acer ~> sudo cryptsetup luksHeaderBackup /dev/sda3 --header-backup-file /media/externo/acer-luks_header.img
Cron
julio@acer ~> sudo systemctl enable cronie
Prevenir fork bombs
Añade esta línea al final de /etc/security/limits.conf:
julio hard nproc 4000
(cambia julio por tu usuario)
Enlaces
- http://onionavenger.wordpress.com/2012/07/22/installing-arch-linux-on-a-thinkpad-t420-with-system-encryption/
- http://teawithtux.blogspot.com.br/2012/03/body-width-800px-padding-left-240px.html
- http://www.c-integration.com/blog/showpost.php/78-unix-fork-bomb-explained
- http://www.linuxcommand.org/man_pages/cryptsetup8.html
- http://www.overclockers.com/forums/showthread.php?t=707382
- http://www.rodsbooks.com/gdisk/cgdisk-walkthrough.html
- https://wiki.archlinux.org/index.php/Beginners'_Guide
- https://wiki.archlinux.org/index.php/Dm-crypt_with_LUKS
- https://wiki.archlinux.org/index.php/GRUB2
- https://wiki.archlinux.org/index.php/Installation_Guide
- https://wiki.archlinux.org/index.php/LVM
- https://wiki.archlinux.org/index.php/Security
- https://wiki.archlinux.org/index.php/Systemd
- Bcrypt vs. SHA-512: http://stackoverflow.com/a/1561245
- LnF awards 2012: https://bbs.archlinux.org/viewtopic.php?id=138281
- Systemd myths: http://0pointer.de/blog/projects/the-biggest-myths