Ja sabem que:
Per tant per a que l’equip funcione necesita tindre el sistema operatiu carregat en la RAM. Quan volem utilitzar un programa el sistema operatiu s’encarrega de buscar-lo en el disc i carregar-lo en la RAM per a que es puga executar, però ¿qui carrega el sistema operatiu en la RAM al arrancar l’equip?
La solució és incloure en la placa base un xip amb memòria no volàtil (un xip EPROM, memòria flash, …) amb un programa que inicia els passos per a carregar el sistema operatiu en la RAM. Les plaques base per a PC tenen dos tipus de xip amb el firmware per a carregar el sistema:
Tant en un cas com en l’altre el programa inclòs en el firmware (BIOS o UEFI) haurà de carregar en la RAM un programa anomenat bootloader (carregador d’arrencada) que és qui s’encarregarà de buscar el sistema operatiu en el disc i carregar-lo en memòria.
El procés de carregar el S.O. tindrà vàries fases:
Aquest procés tarda alrededor d’un minut en els sistemes operatius moderns, encara que en els servidors pot tardar varis minuts.
Ara anem a vore en detall el procés d’arrencada del sistema amb BIOS (o amb UEFI funcionant en mode Legacy BIOS) i el procés d’arrencada del sistema amb UEFI.
La BIOS és un xip de memòria no volàtil que es troba a la placa base i que conté configuracions bàsiques de l’ordinador (com la data i hora o la seqüència d’arrencada) i un xicotet programa per a carregar el sistema operatiu.
Encara que la inmensa majoria d’equips ja no tenen BIOS sino la nova UEFI aquesta es pot configurar en mode Legacy BIOS per a que funcione com una BIOS.
L’arrencada amb BIOS només pot fer-se des d’un dispositiu formatjat amb taula de particions MBR (també anomenada Ms-DOS).
El Master Boot Record (MBR) és el primer sector d’un dispositiu d’emmagatzematge de dades, com un disc dur o un pen-drive. Els dispositius d’emmagatzemament es divideixen en blocs de 512 bytes anomenats sectors i el primer d’ells (el sector 0) és el MBR. Aquest sector conté:
A l’arrencar un ordinador amb BIOS la CPU executa el programa carregat en ella, anomenat POST (PowerOn Self Test) que:
El procés te tants passos perquè tant el programa de la BIOS com el del MBR i el del sector d’arrencada de la partició activa són molt xicotets (recorda que la mida de un sector són 512 bytes) i per tant no poden carregar el S.O. directament.
Alguns sistemes canvien el programa del MBR per a que carregue directament el bootloader des de la partició en que es trobe (com Grub).
La manera en que arranca l’ordinador és pràcticament igual des de Windows 7. El procés d’arrencada és el següent:
\Boot
en la mateixa partició que BootMGR) i, si hi ha més d’una opció, mostra a l’usuari el menú d’arrencada amb les opcions guardades en BCD\Windows\system32
) pasant-li les opcions triades\Windows\system32
) que és el kernel de Windows. Aquest programa s’encarrega de la resta del procès de càrrega. Si voleu saber en detall què fa, és el següent:
\Windows\system32
) que es qui gestiona tot el hardwareNOTA: En molts sistemes amb Winwows 8 quan apaguen l’equip en compte de tancar les sessions dels usuaris, aturar els serveis i apagar la màquina el que es fa és només tancar les sessions dels usuaris i hibernar la màquina (es guarda el contingut de la memòria en un fitxer anomenat hiberfil.sys). Això té l’avantatge que el sistema s’inicia molt ràpidament perquè no han de carregar-se els drivers i iniciar el sistema operatiu i els serveis. |
| Per a que l’ordinador s’ature completament i poder així entrar en la BIOS hem d’apagar-lo en Windows amb la tecla majúscules polsada. Si volem desactivar per a sempre la hibernació hem d’obrir una terminal d’Administrador (busquem cmd i en el menú contextual triem ‘Executar com administrador’) i executar el comando:
powercfg -h como
També podem fer-ho des de l’entorn gràfic amb Panel de control -> Sistema y seguridad -> Opciones de energía -> Cambiar lo que hacen los botones de encendido . |
Si es danya el MBR o algun fitxer d’arranque l’equip no podrà arrancar correctament. El que hem de fer és introduir el CD d’instal·lació de Windows i arrancar l’equip. Una vegada iniciem amb el CD, cal triar l’opció de “Reparar l’equip” en compte de continuar amb l’opció d’instal·lació del sistema.
Una vegada triem aquesta opció, ens pot aparèixer una finestra on triarem Solucionar problemes. A continuació ens apareixerà una finestra en les diferents possibilitats de recuperació:
Bootrec
. Ens permet reparar l’MBR, el sector d’arrencada de la partició o el fitxer Bcd.log:
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd
Bootsect
.Actualitza el MBC de les particions de disc dur. Podem utilitzar també aquesta eina per a restaurar el sector d’arrencada de l’ordinador. Per exemple per a recuperar el sector d’arrancada de la partició del sistema amb Windows 7 i també recuperar el MBC del MBR la sintaxi seria:
bootsect.exe /nt60 SYS /mbr /force
En internet podeu trobar infinitat de pàgines i vídeos de com fer les reparacions més comuns.
NOTA: ací anem a veure com podem modificar l’arrencada de Windows des del mateix sistema però hi ha multitud de programes que ens permeten fer tot això de manera més senzilla, com EasyBCD.
Una forma senzilla de modificar algunes opcions del BCD és amb el comando msconfig
. Podem canviar el temps d’espera, el sistema operatiu per defecte o les opcions de càrrega:
Altra manera de canviar les opcions és des de Panell de Control -> Sistema i Seguretat -> Sistema -> Configuració Avançada del sistema -> Opcions Avançades -> Inici i Recuperació -> Configuració
. Des d’ací només permet canviar el temps i el sistema operatiu per defecte:
L’opció més potent però més difícil de canviar les opcions és executar des de la terminal d’Administrador l’eina bcdedit
. A continuació hi ha un exemple de l’execució d’aquesta ordre sense cap paràmetre o opció.
L’eina BCDEDIT
permet configurar qualsevol opció d’arrencada en el menú BCD així com afegir noves entrades al menú. Podem obtindre ajuda del mateix amb:
bcdedit /?
: mostra informació general del comandobcdedit /? topics
: mostra una llista de accions que permet el comando bcdeditbcdedit /? copy
: mostra informació sobre la acció copy que copia una entrada del menú amb un altre nomTenim molts carregadors per als sistemes Linux però el més utilitzat és Grub.
En realitat Grub no és un gestor d’arrencada només de GNU/Linux sinó que pot carregar qualsevol sistema operatiu (és un gestor d’arrencada múltiple). Una de les característiques més interessants d’aquest gestor és que podem canviar tots els paràmetres en l’arrencada mitjançant el sistema d’ordres de consola de Grub.
El procés d’inici d’un equip amb Grub és:
La manera més ràpida de canviar les opcions de configuració és editar el fitxer /etc/default/grub
. Algunes de les opcions que conté són:
GRUB_DEFAULT
: opció del menú que es triarà per defecte. Posem el número d’opció que volem (començant per 0) o saved
(la última triada)GRUB_TIMEOUT
: temps d’espera del menúGRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
: afegeix opcions a la línia kernel (en aquest cas per a que mostre la imatge amb el progrés de la càrrega i no el detall del que es fa)GRUB_TERMINAL=console
: si es descomenta no carrega la interfície gràficaGRUB_DISABLE_LINUX_RECOVERY
: si es descomenta no apareix l’opció de recuperació en el menúPer a que els canvis fets tinguen efecte, després de fer qualsevol modificació d’aquest fitxer hem de tornar a generar el fitxer grub.cfg mitjançant l’execució de:
upgrade-grub
També podem instal·lar qualsevol programa gràfic per a editar les opcions d’inici com StartUp Manager, Grub Customizer, etc:
Hi pot haver ocasions en què un usuari necessita tornar a instal·lar Grub. Això passa sovint quan el MBR del dispositiu d’arrencada s’altera i Grub s’elimina del MBR, per exemple si Windows s’instal·la (o es re-instal·la) després d’instal·lar GNU/Linux en eixe ordinador.
Podem fer-ho de diferents maneres (podeu trobar més informació en https://help.ubuntu.com/community/Grub2/Installing#Reinstalling_GRUB_2:
Els passos a seguir són:
fdisk -l
.
sudo mount /dev/sda3 /mnt
sudo update-grub
grub-install
com es descriu a continuació. Açò reinstal·larà els fitxers de Grub en la partició muntada i corregirà el MBR:
sudo grub-install --root-directory=/mnt/ /dev/sda
Ara ja podem reiniciar l’equip.
En el pas 6 compte de instal·lar grub des d’un directori podem rootear eixe directori de manera que treballem sobre el nostre sistema en el disc i no sobre el sistema del LiveCD. En eixe cas després de muntar la partició (pas 4) hem de muntar (amb l’opció --bind
) altres 3 directoris:
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc
sudo mount --bind /dev /mnt/dev
Una vegada fet executem chroot
sobre el punt de muntatge:
sudo chroot /mnt
I ara ja podem reparar grub (abans l’actualitzarem si cal amb update-grub
):
sudo grub-install --recheck /dev/sda
I per últim reiniciem l’equip.
NOTA: recorda canviar els noms de discs i particions (sda, sda3, …) pels adequats en el teu sistema.
Es tracta de un LiveCD que permet arrencar un equip des de la qualsevol partició del disc. El que fa és mirar en el disc de l’equip els sistemes operatius instal·lats i mostra un menú on triem el que volem arrancar. Una vegada dins, com ja estem en el nostre linux només cal fer:
sudo update-grub
si hem fet algun canvi en el disc (per exemple si hem instal·lat un nou Windows)grub-install
. Açò reinstal·larà els fitxers de Grub de la partició actual en la seua correcta ubicació i també corregirà el MBR.
sudo grub-install /dev/sda
A més de SuperGrub hi ha altres utilitats per fer això com Boot Repair, Rescatux, etc.
La EFI (Extensible Firmware Interface), és una especificació desenvolupada per Intel per a reemplaçar la antiga BIOS que tenia moltes limitacions. Algunes de les seues avantatges són:
NOTA: Per a saber quin tipus d’instal·lació de Windows tenim executem (menu contextual del botó Inici -> Executar) msinfo32
.
El procés d’arrencada és més simple que amb BIOS: al arrancar l’equip s’executa el programa que hi ha en la UEFI que comprova i inicialitza el hardware i a continuació carrega en la RAM el bootloader del sistema operatiu que volem iniciar.
L’arrencada amb UEFI és més senzilla i ràpida perquè aquest firmware pot carregar directament en la RAM el carregador del sistema operatiu, sense necessitat del MBR ni el sector d’arrencada de la partició activa.
Un ordinador amb arrencada UEFI necessita una partició en el disc dur anomenada ESP (EFI System Partition) on es guarden els carregadors dels sistemes operatius instal·lats en el disc. Aquesta partició ha de tindre un sistema d’arxius FAT32. Cada sistema operatiu que s’instal·la crea una carpeta en aquesta partició on guarda el seu carregador. Per defecte es carrega /EFI/BOOT/bootx64.efi
.
En la imatge anterior podem veure la partició EFI d’un equip amb Windows, Debian i Ubuntu instal·lats. En el panel de la dreta podem veure el contingut de la carpeta d’arrencada de Windows amb el carregador (BootMgr) i el menú d’opcions d’inici (BCD).
Per a poder triar quin bootloader carregar EFI té un menú intern on es guarden les opcions d’arrencada. Al instal·lar un nou sistema operatiu aquest ha d’afegir una entrada per a ell en aquest menú. Al arrancar hi ha una opció (normalment F12 o F9) per a mostrar totes les entrades del menú i triar quina iniciar. Des de GNU/Linux les poderm vore amb el comando efibootmgr
(amb el paràmetre -v
vorem quin és el bootloader de cada opció).
Podem afegir noves opcions al menú. Per exemple per a afegir una nova opció que mostre ‘Sistema Debian’ i execute el carregador de Debian executem el comando:
# efibootmgr -c -L "Sistema Debian" -l '\EFI\debian\grubx64.efi'
És una opció de UEFI que impedeix que s’execute un bootloader si no està signat digitalment per una entitat reconeguda pel sistema. Normalment els equips que comprem inclouen la signatura de Microsoft i per tant poden arrancar els carregadors de Windows però hi ha algunes distribucions GNU/Linux que tenen també el seu carregador signat per Microsoft per a poder arrancar amb Secure Boot.
També podem desactivar aquesta opció o afegir altres signatures a la nostra UEFI. Per a afegir signatures UEFI compta amb una base de dades (MOK Machine Owner Key) on es guarden les claus de les entitats que poden signar els bootloaders.
Si el nostre ordinador amb UEFI no arranca, la forma més senzilla de arreglar-lo és des de l’entorn gràfic de la nostra BIOS/UEFI. Allí podrem vore les diferents opcions d’arrancada així com eliminar alguna o afegir noves.
Altra forma és afegir una opció des de la shell de UEFI per a que arranque el carregador que li indiquem, encara que al no tindre entorn gràfic és més difícil. En primer lloc anem a veure els dispositius que tenim:
Shell> map
Entrem en el disc dur (normalment fs0):
Shell> fs0:
Amb ls
podem veure el contingut i buscar el carregador (un fitxer .efi que estarà dins de la carpeta de la nostra distribució). En el cas de Debian el trobem en fs0:\EFI\debian\grubx64.efi. Ara afegim una entrada per al carregador
:
FS0:\> bcfg boot add 0 fs0:\EFI\debian\grubx64.efi "Debian"
Per a finalitzar eixim amb exit
i ja tenim el carregador arreglat.
En tot cas, si el nostre sistema no arranca sempre podrem arrancar-lo des d’un USB amb algun gestor d’arrencada per a UEFI com rEFInd, Boot Repair, supergrub disk o altres. Una vegada arrancat podem intentar reparar des de dins el que estiga malament.
Cada sistema operatiu que instal·lem crearà dins de la partició EFI una carpeta amb el seu nom (Microsoft, Debian, Ubuntu, Apple, etc) dins de la qual hi ha un fitxer anomenat NomfitxerArquitectura.efi (per exemple bootmgfw.efi o grubx64.efi) que és el carregador d’eixe sistema operatiu. A més crea una variable en la NVRAM (Non-Volatile RAM) de UEFI que apunta a eixe carregador per a que aparega eixa opció en el menú al arrancar (si només hi ha una opció no apareix el menú).
Si el firmware no troba cap opció d’arrencada carrega directament el fitxer EFI/boot/bootx64.efi
que és un carregador per defecte, dins del directori boot que no pertany a cap sistema operatiu. Algunes versions del sistemes de Microsoft quan instal·len el sistema a més de posar el seu carregador dins de EFI/Microsoft
sobreescriuen el carregador per defecte amb el seu carregador de manera que per defecte arranque Windows.
Això no hauria de ser un problema però hi ha alguns equips amb una implementació dèbil d’EFI on els carregadors no es registren correctament en la NVRAM per la qual cosa només arranquen el carregador per defecte, és a dir, el de Windows (font: http://mjg59.livejournal.com/138188.html).
La solució si tenim un equip amb aquest problema on volem tindre un Windows i un GNU/Linux és sobreescriure el EFI/boot/bootx64.efi
amb el carregador de GNU/Linux que ens donarà opció d’arrancar tant Linux com Windows.
Els pasos per a fer-ho són els següents:
Obrim una terminal i determinem quina és la partició de EFI i quina la del nostre sistema GNU/Linux. Podem fer-ho amb sudo fdisk -l
.
mount /dev/sda5 /mnt
mount /dev/sda2 /mnt/boot/efi
for i in /sys /proc /dev
do
mount --bind $i /mnt$i
done
chroot /mnt
cd /boot/efi/EFI
cp ubuntu/grubx64.efi Boot/bootx64.efi
exit
for i in /sys /proc /dev
do
umount /mnt$i
done
umount /mnt/boot/efi
umount /mnt
Ara ja podem reiniciar el nostre sistema i apareixerà el menú de Grub per a triar quin sistema operatiu carregar.