#############################################################################
########## Fitxer de comandes per instal·lar Ubuntu server en un disc (o fitxer) ###########
#############################################################################
0. És bo que, d'entrada, llegiu aquest enunciat un primer cop, per tenir una primera visió del que haureu de fer en aquesta pràctica. Veureu que hi ha algunes preguntes que poden ser interessants de respondre. Per aquesta pràctica no s'han d'entregar les respostes, ni cap informe. Suposem que el fet d'instal·lar el sistema és prou demostració que heu treballat en la pràctica.

1. Baixeu el fitxer de comandes
gendisk-to-device-22.04.sh

com?:
wget https://docencia.ac.upc.edu/FIB/grau/CASO/labs2022-23-2q/install/gendisk-to-device-22.04.sh

2. Crea un punt de muntatge, concretament "/mnt/point2", que el fitxer de comandes fa servir per muntar i preparar els sistemes de fitxers del disc.

3. Assegura't que un disc de 500 GBytes o més de capacitat està connectat com a /dev/sda. Pista: fdisk -l /dev/sda indica la capacitat del disc.
(pregunta: si l'ordinador ja té un disc intern, com és que l'extern es diu /dev/sda, comptant que el primer disc és etiquetat habitualment com a "sda"?)

Tingues en compte també que el sistema on has insertat el disc, pot haver-ne muntat algunes particions. Si és el cas, habitualment apareixen com a icones a l'escriptori. IMPORTANTÍSSIM: desmunta-les abans de continuar!!!

4. Executa el fitxer de comandes sense arguments
$ bash gendisk-to-device-22.04.sh
5. Segueix les instruccions donades pel fitxer de comandes. Fes servir les següents indicacions... Quan el fitxer de comandes et pregunti...
5.1. P: Tens el dispositiu (disc o fitxer) connectat com a $targetdevice ?
R: Si saps que el dispositiu s'identifica en Linux amb el valor que ens indica $targetdevice, endavant, respon "s" (i prem <Intro>) i continua.
Altrament, pots aturar l'execució del fitxer de comandes amb <ctrl-C> i canviar la definició de la variable "targetdevice" al començament del fitxer de comandes per a que quedi ben definit.

5.2. P: A punt d'esborrar el disc, prem <intro> per continuar
- Prem <Intro> si saps que el disc indicat és el correcte.
Si no voleu continuar, podeu interrompre el fitxer de comandes amb <ctrl-C>.

5.3. P: /dev/sdXX està muntat a /mnt/point2 de tipus TTTT (rw, ......) Si us plau, comprova-ho...
El fitxer de comandes s'espera que confirmis que el dispositiu /dev/sdXX està realment muntat a /mnt/point2.
Interromp l'execució del fitxer de comandes, si el missatge "/dev/sdXX està muntat a /mnt/point2 de tipus TTTT (rw, ......)" no ha aparegut abans de "Si us plau, comprova-ho..."
I, si tot és correcte, - Prem <Intro> per continuar.

5.4. P: De vegades, mentre es construeix un sistema de fitxers amb "mkfs", aquest programa demana confirmació: Si és el cas, respon "y" (i prem <Intro>)


I això és tot!
Quan el fitxer de comandes hagi acabat l'execució, hauries de tenir el disc a /dev/sda preparat per engegar el nou sistema Ubuntu 22.04.

6. Fes un shutdown del sistema actual, no desconnectis el disc i reboota:
$ sudo shutdown -r now     ## (o pots fer servir la interfície gràfica per fer el mateix)
7. Arrenca del nou disc (a les màquines de la FIB, en rebootar cal prémer <F12> per entrar al selector del disc/partició de boot).

El menú del GRUB del nou disc hauria de mostrar una entrada de menú "Ubuntu" com a primera opció. Selecciona-la.

8. Quan el sistema et doni el "login", podràs entrar-hi.

9. Un cop a dins, veuràs que el sistema t'informa que és una versió "minimized".

A banda, hem detectat que hi ha situacions en què el fitxer /boot/initrd.img es fa molt gros i el GRUB dóna un missatge d'"Error: out of memory". Per mirar de solucionar el problema pots fer:
$ sudo apt-get update
$ sudo apt-get install vim     # o algun altre editor de text
$ sudo vi /etc/initramfs-tools/initramfs.conf
i canviar la línia: MODULES=most per
MODULES=dep

També hem detectat que de vegades la resolució de la pantalla és molt baixa. Per intentar evitar-ho, feu:
- Editeu el fitxer /etc/default/grub i busqueu la definició de la variable
#GRUB_GFXMODE=640x480     #### que està comentada
- Afegiu a sota:
GRUB_GFXMODE=1920x1080     # per suggerir-li que pot fer servir 1920x1080
- I executeu:
$ sudo grub-install
Això hauria d'arreglar el tema de la resolució.

Ara feu:
$ sudo unminimize
per restaurar la informació i paquets que s'havien esborrat per fer-la "mínima". Mentre ho fa, us demanarà si voleu reiniciar alguns serveis, podeu dir-li que no cal.

Un cop acabi l'unminimize, fes un reboot de l'ordinador, per comprovar que tot funciona correctament.

9.5. <opcional> Ara teniu l'oportunitat d'actualitzar el sistema complet a Ubuntu 24.04 LTS, abans de continuar instal·lant paquets. Feu-ho si teniu prou temps, perquè l'actualització triga uns 45 minuts ben bé...
$ sudo do-release-upgrade

(pregunta: què heu de fer abans, per poder executar aquesta comanda?)

Durant el "release-upgrade", haureu de respondre 5 o 6 preguntes per confirmar que voleu fer l'actualització a 24.04 LTS i sobre les configuracions de les fonts, teclat i sobre els fitxer modificats "/etc/default/grub" i "/etc/initramfs-tools/initramfs.conf". Respecte a aquests fitxers, indiqueu que voleu la versió nova, i mentre continua l'actualització podeu fer-los el canvi que els heu fet abans, des d'una altra consola (<ctrl-alt-f2>).

Acabeu aquest pas indicant al "release-upgrade" que voleu "rebootar", o fent un:

$ sudo shutdown -r now

per comprovar que el sistema encara arrenca correctament.

10. I ara pots instal·lar qualsevol paquet d'Ubuntu disponible. Pots buscar paquets per nom fent servir:
$ apt-cache search <package-names...>
Per exemple, pots instal·lar algunes eines comunes:
build-essential     # Compilador de GNU, i eines relacionades
libtool                  # suport per "configure"
autotools-dev     # Eines del "configure"
...

Al fer aquesta instal·lació de les eines de compilació també us demanarà si voleu reiniciar alguns serveis. Podeu deixar la reinicialització que us proposa.

També pots instal·lar el "Desktop" que prefereixis.

L'avantatge d'instal·lar un entorn gràfic ("Desktop") és que porta molts serveis incorporats i llibreries que es fan servir comunment en Linux.

Entre altres (recomanem kde-standard, alguns poden no estar disponibles pel curs 2024/2025-2q):
* KDE, amb diverses possibilitats:
kde-plasma-desktop              kde-standard                    kde-full
2.1 Gbytes, ~35 minuts     2.5 Gbytes, ~45 minuts     5.1 Gbytes

* LXDE, lxde

* MATE (continuació de GNOME), mate-desktop-environment

* Robot OS desktop, ros-desktop-full, o altres variants

* UKUI Desktop, ukui-desktop-environment

* ... i segur que molts més...

Com que la instal·lació de l'entorn gràfic trigarà bastant (~45 minuts), mentrestant pots comprovar que el compilador funciona amb el codi de test del suport SIMD (vector-support.tar.gz) que tenim a la web de l'assignatura:
* Obre una altra sessió de text (<ctrl-alt-f2>, <ctrl-alt-f3>... obren altres consoles virtuals)
* Descarrega amb "wget"
http://docencia.ac.upc.edu/FIB/grau/CASO/labs2024-25-2q/install/vector-support.tar.gz
* Descomprimeix i prova l'exemple amb:
$ make run
(pregunta: què pots dir de les diferents execucions que veus? -- temps d'execució, tecnologia que fan servir?)

* Descarrega amb "wget"
http://docencia.ac.upc.edu/FIB/grau/CASO/labs2024-25-2q/install/matrix-support.tar.gz
* Descomprimeix i prova l'exemple amb:
$ make run
(pregunta: què ens falta a les màquines del laboratori per poder executar aquest exemple? Saps d'alguna màquina propera que pugui executar-lo?)


I quan tinguis l'entorn gràfic, pots instal·lar un navegador d'Internet:
firefox, chrome...
...


Problemes comuns detectats:
- Si, al reiniciar, el GRUB dóna un error d'"out of memory", podeu fer:
$ sudo vi /etc/initramfs-tools/initramfs.conf
i canviar la línia: MODULES=most per
MODULES=dep

i a continuació:
$ sudo mkinitramfs -o /boot/initrd.new `uname -r`
$ sudo mv /boot/initrd.img-`uname -r` /boot/initrd.img-`uname -r`.old
$ sudo mv /boot/initrd.new /boot/initrd.img-`uname -r`

Enllaç sobre el tema:
https://unix.stackexchange.com/questions/270390/how-to-reduce-the-size-of-the-initrd-when-compiling-your-kernel
- Si en bootar el nou sistema es queda aturat després del "cloud-init", mireu de refer la instal·lació. No hem aconseguit saber perquè passa això.
- Si la resolució de l'entorn gràfic és molt baixa (1024x768?), editeu el fitxer /etc/default/grub i busqueu la definició de la variable
#GRUB_GFXMODE=640x480     # que està comentada
afegiu a sota:
GRUB_GFXMODE=1920x1080     # per suggerir-li que pot fer servir 1920x1080
I executeu:
$ sudo grub-install
i rebooteu; això hauria d'arreglar el tema de la resolució.

#############################################################################