Live manual Debian Live

# Debian Live Manual

# Conceptes bàsics

159

# 4. Conceptes bàsics

160

Aquest capítol conté una breu descripció del procés de construcció i les instruccions per a l'utilització dels tres tipus d'imatge més comunes. El tipus d'imatge més versàtil `iso-hybrid` es pot utilitzar en una màquina virtual, en un medi òptic o qualsevol altre dispositiu d'emmagatzematge USB. En certs casos especials, com s'explica més endavant, el tipus `hdd` pot ser el més adequat. El capítol conté instruccions detallades per a la construcció d'una imatge tipus `netboot`, que és una mica més complicat a causa de la configuració necessària en el servidor. Aquest és un tema una mica avançat per a algú que no està familiaritzat ja amb l'arrencada en xarxa, però s'inclou aquí perquè un cop que la configuració es porta a terme, es tracta d'una manera molt convenient per a provar i desplegar imatges per a l'arrencada en xarxa local sense la molèstia de tractar amb els dispositius de les imatges.

161

La secció acaba amb una breu introducció al webbooting que és, potser, la forma més fàcil d'utilitzar imatges diferents per a diferents propòsits, canviant d'una a l'altra segons sigui necessari, utilitzant internet com un mitjà.

162

Al llarg del capítol, sovint es fa referència als noms dels fitxers produïts per defecte per live-build. Si es descarrega una imatge prefabricada, els noms dels fitxers poden ser direrents.

163

4.1 Què és un sistema viu?

164

Un sistema viu és un sistema operatiu que arrenca en un equip des d'un dispositiu extraïble, com un CD-ROM o una memòria USB o des d'una xarxa, a punt per a fer servir sense cap tipus d'instal·lació en la unitat(s) habitual(s), amb una configuració automàtica feta en temps d'execució (veure Termes).

165

With live systems, it's an operating system, built for one of the supported architectures (currently amd64 and arm64). It is made from the following parts:

166

- Imatge del nucli Linux, generalment s'anomena `vmlinuz*`

167

- Imatge del disc RAM inicial (initrd): un disc RAM configurat per a l'arrencada de Linux, que conté els mòduls que possiblement es necessitaran per a muntar la imatge del sistema i algunes seqüències d'ordres per a fer-ho.

168

- Imatge del sistema: Imatge del sistema de fitxers del sistema operatiu. Normalment, s'utilitza un sistema de fitxers comprimit SquashFS per a minimitzar la mida de la imatge. Tenir en compte que és de només lectura. Així, durant l'arrencada, el sistema Debian Live utilitzarà el disc RAM i un mecanisme de "unió" per a permetre l'escriptura de fitxers en el sistema en funcionament. No obstant això, totes les modificacions es perdran al apagar l'equip si no és que s'utilitza la persistència opcional (vegeu Persistència).

169

- Carregador d'arrencada : Una petita peça de codi dissenyat per a arrencar des del medi triat, possiblement presentant un indicador d'arrencada o un menú per a permetre la selecció d'opcions/configuració. Carrega el nucli de Linux i el seu initrd per a funcionar amb un sistema de fitxers del sistema associat. Es poden utilitzar diverses solucions, en funció del medi de destinació i el format del sistema de fitxers que conté els components esmentats anteriorment: isolinux per a arrencar des de CD o DVD en format ISO9660, syslinux per a una unitat USB o HDD que s'iniciarà des de particions VFAT, extlinux per a particions ext2/3/4 i btrfs, pxelinux per a PXE netboot, GRUB per a particions ext2/3/4, etc.

170

You can use live-build to build the system image from your specifications, set up a Linux kernel, its initrd, and a bootloader to run them, all in one medium-dependent format (ISO9660 image, disk image, etc.).

171

4.2 Descàrrega d'imatges prefabricades

172

You can download one of the prebuilt images from ‹https://www.debian.org/CD/live/›. For many of the popular desktop environments (GNOME, Xfce, KDE, etc.) a specific live image is prepared.

173

If you are unsure which file to download, use the 'Live GNOME' image from the 'stable' release. You can then skip reading the next sections and run the image in a virtual machine.

174

4.3 Primers passos: construcció d'una imatge ISO híbrida

175

Independentment del tipus d'imatge, s'haurà de fer els mateixos passos bàsics per a construir una imatge cada vegada. Com a primer exemple, crear un directori de treball, canviar a aquest directori i executar la següent seqüència d'ordres live-build per a crear una imatge ISO híbrida de base que conté només el sistema per defecte de Debian sense X.org. És adequat per a gravar en un CD o DVD, i també per a copiar en una memòria USB.

176

El nom del directori de treball és absolutament indiferent, però si es fa un cop d'ull als exemples utilitzats a live-manual, és una bona idea utilitzar un nom que ajudi a identificar la imatge amb que s'està treballant en cada directori, especialment si s'està treballant o experimentant amb diferents tipus d'imatges. En aquest cas, anem a construir un sistema per defecte així que l'anomenarem, per exemple, live-default.

177

$ mkdir live-default && cd live-default

178

Aleshores, executar l'ordre `lb config`. Això crearà una jerarquia «config/» en el directori actual per a ser utilitzada per altres ordres:

179

$ lb config

180

Aquí no es passa cap paràmetre a aquestes ordres, per tant s'utilitzaran les opcions per defecte. Veure L'ordre lb config per a més detalls.

181

Ara que la jerarquia «config/» ja existeix, crear la imatge amb l'ordre `lb build`:

182

# lb build

183

This process can take a while, depending on the speed of your computer and your network connection. When it is complete, there should be a `live-image-amd64.hybrid.iso` image file, ready to use, in the current directory.

184

Nota: Si s'està construint en un sistema amd64 el nom de la imatge resultant serà `live-image-amd64.hybrid.iso`. Tenir en compte aquesta convenció al llarg del manual.

185

4.4 Usar una imatge ISO híbrida en viu

186

After either building or downloading an ISO hybrid image the usual next step is to prepare your medium for booting, either CD-R(W) or DVD-R(W) optical media or a USB stick.

187

4.4.1 Gravar una imatge ISO en un medi físic

188

Gravar una imatge ISO és fàcil. Simplement cal instal·lar xorriso i utilitzar-lo des de la línia d'ordres per a gravar la imatge. Per exemple:

189

# apt-get install xorriso
$ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed live-image-amd64.hybrid.iso

190

4.4.2 Copiar una imatge ISO híbrida en un dispositiu USB

191

Les imatges ISO preparades amb `xorriso`, és poden copiar directament a una memòria USB utilitzant el programa `cp` o un altre d'equivalent. Connectar una memòria USB amb una mida prou gran per al fitxer de la imatge i determinar quin dispositiu és, que d'ara endavant anomenarem `${USBSTICK}`. Aquest és el dispositiu de la memòria, com per exemple `/dev/sdb`, i no una partició, com ara `/dev/sdb1`! Es pot trobar el nom del dispositiu correcte mirant la sortida de `dmesg` després de connectar la memòria usb, o encara millor, `ls -l /dev/disk/by-id`.

192

Quan s'estigui segur de tenir el nom del dispositiu correcte, utilitzar l'ordre `cp` per a copiar la imatge a la memòria. Fent això es perdran definitivament tots els continguts anteriors de la memòria usb!

193

$ cp live-image-amd64.hybrid.iso ${USBSTICK}
$ sync

194

Nota: L'ordre sync s'utilitza per a assegurar-se que totes les dades, que el nucli emmagatzema en la memòria durant la còpia de la imatge, s'escriuen en el dispositiu USB.

195

4.4.3 Utilitzar l'espai lliure en una memòria USB

196

After copying the `live-image-amd64.hybrid.iso` to a USB stick, the first partition on the device will be filled up by the live system. To use the remaining free space, use a partitioning tool such as gparted or parted to create a new partition on the stick.

197

# gparted ${USBSTICK}

198

Després de crear la partició, on `${PARTITION}` és el nom de la partició, com ara `/dev/sdb2`, s'ha de crear un sistema de fitxers. Una opció possible seria ext4.

199

# mkfs.ext4 ${PARTITION}

200

Nota: Si es vol utilitzar l'espai addicional amb Windows, pel que sembla, aquest sistema operatiu normalment no pot accedir a altres particions més que a la primera. Algunes solucions a aquest problema han estat discutides a la nostra llista de correu, però sembla que no hi ha respostes fàcils.

201

Remember: Every time you install a new live-image-amd64.hybrid.iso on the stick, all data on the stick will be lost because the partition table is overwritten by the contents of the image, so back up your extra partition first to restore again after updating the live image.

202

4.4.4 Arrencar el medi en viu

203

La primera vegada que s'arrenqui el medi en viu, ja sigui des de CD, DVD, memòria USB, o PXE, pot ser necessaria alguna petita configuració al BIOS del ordinador en primer lloc. Atès que les BIOS varien molt en les seves funcions i dreceres de teclat, no podem entrar en el tema en profunditat aquí. Algunes BIOS proporcionen una tecla per a obrir un menú de dispositius d'arrencada, que és la manera més fàcil si es troba disponible al sistema. En cas contrari, cal entrar al menú de configuració del BIOS i canviar l'ordre d'arrencada per a situar el dispositiu del sistema en viu abans que el dispositiu d'arrencada normal.

204

Després d'arrencar des del dispositiu, es veurà un menu d'inici. Si es prem «entrer» el sistema s'iniciarà amb l'entrada `Live` i les seves opcions per defecte. Per a obtenir més informació sobre les opcions d'arrencada, llegir «l'ajuda» (help) al menú i també les pàgines del manual de live-boot i live-config que es troben dins del sistema en viu.

205

Assuming you've selected `Live` and booted a default desktop live image, after the boot messages scroll by, you should be automatically logged into the `user` account and see a desktop, ready to use. If you have booted a console-only image, you should be automatically logged in on the console to the `user` account and see a shell prompt, ready to use.

206

4.5 Utilitzar una màquina virtual per a fer proves

207

Pot ser un gran estalvi de temps per al desenvolupament d'imatges en viu executar-les en una màquina virtual (VM). Això no està exempt d'advertiments:

208

- L'execució d'una màquina virtual requereix de suficient memòria RAM, tant per al sistema operatiu convidat i l'amfitrió i es recomana una CPU amb suport de maquinari per a la virtualització.

209

- Hi ha algunes limitacions inherents a l'execució en una màquina virtual, per exemple, rendiment de vídeo pobre, opcions limitadades de maquinari emulat.

210

- En el desenvolupament per a un maquinari específic, no hi ha cap substitut millor que el propi maquinari.

211

- De tant en tant hi ha errors que només sorgeixen durant l'execució en una màquina virtual. En cas de dubte, comprovar la imatge directament al maquinari.

212

Sempre que es pugui treballar dins d'aquestes limitacions, examinar el programari de màquina virtual disponible i triar un que sigui adequat per a les necessitats pròpies.

213

4.5.1 Provar una imatge ISO amb QEMU

214

La màquina virtual més versàtil dins Debian és QEMU. Si el processador té suport de maquinari per a la virtualització, utilitzar el paquet qemu-kvm; la descripció del paquet qemu-kvm enumera breument els requisits.

215

Primer, instal·lar qemu-kvm si el processador ho suporta. Si no, instal·lar qemu, en aquest cas el nom del programa és `qemu` en lloc de `kvm` en els exemples següents. El paquet qemu-utils també és valuós per a la creació d'imatges de disc virtuals amb `qemu-img`.

216

# apt-get install qemu-kvm qemu-utils

217

Arrencar una imatge ISO és senzill:

218

$ kvm -cdrom live-image-amd64.hybrid.iso -m 4G

219

Veure les pàgines del manual per a més detalls

220

Note: For live systems containing a desktop environment that you want to test with qemu, you may wish to include the spice-vdagent package in your live-build configuration. This will automatically adjust the resolution and enable the clipboard between the virtual machine and the host.

221

$ echo "spice-vdagent" >> config/package-lists/spice.list.chroot

222

4.5.2 Provar una imatge ISO amb VirtualBox

223

Per a provar la ISO amb virtualbox:

224

# apt-get install virtualbox virtualbox-qt virtualbox-dkms
$ virtualbox

225

Create a new virtual machine, change the storage settings to use `live-image-amd64.hybrid.iso` as the CD/DVD device, and start the machine.

226

Nota: Per a provar sistemes vius que contenen X.org amb virtualbox, segurament es assenyat incloure el paquet del driver VirtualBox X.org, virtualbox-guest-dkms i virtualbox-guest-x11, en la configuració de live-build. En cas contrari, la resolució es limita a 800x600.

227

$ echo "virtualbox-guest-dkms virtualbox-guest-x11" >> config/package-lists/my.list.chroot

228

Per tal de fer que el paquet dkms funcioni, s'han d'instal·lar també les capçaleres del nucli per a la variant del nucli de la imatge. En lloc d'enumerar manualment el paquet linux-headers correcte en la llista de paquets creat anteriorment, la selecció del paquet adequat es pot fer automàticament amb live-build.

229

$ lb config --linux-packages "linux-image linux-headers"

230

4.6 Construir i utilitzar una imatge HDD

231

Building an HDD image is similar to an ISO hybrid one in all respects except you specify `-b hdd` and the resulting filename is `live-image-amd64.img` which cannot be burnt to optical media. It is suitable for booting from USB sticks, USB hard drives, and various other portable storage devices. Normally, an ISO hybrid image can be used for this purpose instead, but if you have a BIOS which does not handle hybrid images properly, you need an HDD image.

232

Nota: si s'ha creat una imatge ISO híbrida amb l'exemple anterior, s'haurà de netejar el directori de treball amb l'ordre `lb clean` (veure L'ordre lb clean):

233

# lb clean --binary

234

Executar l'ordre `lb config` com abans, excepte que aquesta vegada especificant el tipus d'imatge HDD:

235

$ lb config -b hdd

236

Ara construir la imatge amb l'ordre `lb build`:

237

# lb build

238

When the build finishes, a `live-image-amd64.img` file should be present in the current directory.

239

The generated binary image contains a VFAT partition and the syslinux bootloader, ready to be directly written on a USB device. Once again, using an HDD image is just like using an ISO hybrid one on USB. Follow the instructions in Using an ISO hybrid live image, except use the filename `live-image-amd64.img` instead of `live-image-amd64.hybrid.iso`.

240

Likewise, to test an HDD image with Qemu, install qemu as described above in Testing an ISO image with QEMU. Then run `kvm` or `qemu`, depending on which version your host system needs, specifying `live-image-amd64.img` as the first hard drive.

241

$ kvm -hda live-image-amd64.img

242

4.7 Construir una imatge netboot

243

La següent seqüència d'ordres crearà una imatge netboot bàsica que conté el sistema per defecte de Debian sense X.org. És adequada per a l'arrencada en xarxa.

244

Nota: si s'ha realitzat algun dels exemples anteriors, s'haurà de netejar el directori de treball amb l'ordre `lb clean`:

245

# lb clean

246

En aquest cas concret, un `lb clean --binary` no seria suficient per a netejar les etapes necessàries. La causa d'això és que en les configuracions d'arrencada en xarxa, es necessita una configuració initramfs diferent que live-build realitza automàticament quan es construeixen imatges netboot. Ja que la creació del initramfs pertany a l'etapa chroot, fer el canvi a netboot en un directori de construcció existent significa reconstruir l'etapa chroot també. Per tant, s'ha de fer un `lb clean` (que eliminarà l'etapa chroot, també)

247

Executar l'ordre següent per a configurar la imatge per a arrencar en xarxa:

248

$ lb config -b netboot --net-root-path "/srv/debian-live" --net-root-server "192.168.0.2"

249

A diferència de les imatges ISO i HDD, l'arrencada en xarxa no serveix el sistema de fitxers al client, per tant els fitxers han de ser servits a través de NFS. Amb lb config es poden elegir diferents sistemes de fitxers de xarxa. Les opcions `--net-root-path` i `--net-root-server` especifiquen la ubicació i el servidor, respectivament, del servidor NFS on es troba la imatge del sistema de fitxers a l'hora d'arrencar. Assegurar-se que aquests s'ajusten als valors adequats per a la xarxa i el servidor.

250

Ara construir la imatge amb l'ordre `lb build`:

251

# lb build

252

En l'arrencada en xarxa, el client executa una petita peça de programari que normalment es troba a la EPROM de la targeta Ethernet. Aquest programa envia una petició DHCP per a obtenir una adreça IP i la informació sobre què fer a continuació. Per regla general, el següent pas és aconseguir un carregador d'arrencada de més alt nivell a través del protocol TFTP. Podria ser GRUB, pxelinux o fins i tot arrencar directament a un sistema operatiu com Linux.

253

For example, if you unpack the generated `live-image-amd64.netboot.tar` archive in the `/srv/debian-live` directory, you'll find the filesystem image in `live/filesystem.squashfs` and the kernel, initrd and pxelinux bootloader in `tftpboot/`.

254

Ara hem de configurar els tres serveis al servidor per a l'arrencada en xarxa: el servidor DHCP, servidor TFTP i el servidor NFS.

255

4.7.1 Servidor DHCP

256

S'ha de configurar el servidor DHCP de la xarxa per a assegurar-se que dona una adreça IP per al client del sistema d'arrencada en xarxa, i per a anunciar la ubicació del carregador d'arrencada PXE.

257

Heus aquí un exemple per a servir d'inspiració, escrit per al servidor ISC DHCP `isc-dhcp-server` al fitxer de configuració `/etc/dhcp/dhcpd.conf`:

258

# /etc/dhcp/dhcpd.conf - configuration file for isc-dhcp-server
ddns-update-style none;
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.0.254;
filename "pxelinux.0";
next-server 192.168.0.2;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
}

259

4.7.2 Servidor TFTP

260

Aquest serveix el nucli i el disc ram inicial per al sistema en temps d'execució.

261

S'ha d'instal·lar el paquet tftpd-hpa. Aquest pot servir tots els fitxers continguts dins d'un directori arrel, per regla general `/srv/tftp`. Per tal que es serveixin els fitxers dins de `/srv/debian-live/tftpboot`, s'ha d'executar com a superusuari la següent ordre:

262

# dpkg-reconfigure -plow tftpd-hpa

263

i omplir el nou directori del servidor tftp quan ho hàgim de fer.

264

4.7.3 Servidor NFS

265

Un cop l'ordinador ha descarregat, ha arrencat el nucli de Linux i ha carregat el initrd, intentarà muntar la imatge del sistema de fitxers en viu a través d'un servidor NFS.

266

S'ha d'instal·lar el paquet nfs-kernel-server

267

Llavors, fer que la imatge del sistema de fitxers estigui disponible a través de NFS afegint una línia com la següent a `/etc/exports`:

268

/srv/debian-live *(ro,async,no_root_squash,no_subtree_check)

269

i informar al servidor NFS sobre aquesta nova exportació amb la següent ordre:

270

# exportfs -rv

271

Setting up these three services can be a little tricky. You might need some patience to get all of them working together. For more information, see the syslinux wiki at ‹https://wiki.syslinux.org/wiki/index.php?title=PXELINUX› or the Debian Installer Manual's TFTP Net Booting section at ‹https://www.debian.org/releases/stable/amd64/ch04s05.en.html›. They might help, as their processes are very similar.

272

4.7.4 Com provar l'arrencada en xarxa

273

La creació d'imatges d'arrencada en xarxa es senzilla amb live-build, però provar les imatges en màquines físiques pot costar molt de temps.

274

Per a fer la nostra vida més fàcil, podem utilitzar la virtualització.

275

4.7.5 Qemu

276

- Instal·lar qemu, bridge-utils, sudo.

277

Editar `/etc/qemu-ifup`:

278

#!/bin/sh
sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1
echo "Executing /etc/qemu-ifup"
echo "Bringing up $1 for bridged mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
sudo /usr/sbin/brctl addif br0 $1
sleep 2

279

Descarregar o crear un `grub-floppy-netboot`.

280

Llançar `qemu` amb "`-net nic,vlan=0 -net tap,vlan=0,ifname=tun0`"

281

4.8 Webbooting

282

Webbooting és una manera convenient d'aconseguir i arrencar sistemes vius utilitzant internet com un mitjà. Els requisits per fer webbooting són molt pocs. D'una banda, es necessita un dispositiu amb un carregador d'arrencada, un disc ram inicial i un nucli. D'altra banda, un servidor web per emmagatzemar els fitxers squashfs que contenen el sistema de fitxers.

283

4.8.1 Obtenir els fitxers webboot

284

As usual, you can build the images yourself or use the prebuilt files. Using prebuilt images would be handy for doing initial testing until one can fine tune their own needs. If you have built a live image you will find the files needed for webbooting in the build directory under `binary/live/`. The files are called `vmlinuz`, `initrd.img` and `filesystem.squashfs`.

285

També és possible extreure els fitxers d'una imatge iso ja existent. Per tal d'aconseguir això, muntar la imatge de la següent manera:

286

# mount -o loop image.iso /mnt

287

The files are to be found under the `live/` directory. In this specific case, it would be `/mnt/live/`. This method has the disadvantage that you need to be root to be able to mount the image. However, it has the advantage that it is easily scriptable and thus, easily automated.

288

Però, sens dubte, la forma més fàcil d'extreure els fitxers d'una imatge iso i pujar-los al servidor web a la vegada, és utilitzant el midnight commander o mc. Si es té el paquet genisoimage instal·lat, aquest gestor de fitxers de dos panells permet examinar el contingut d'un arxiu iso en un panell i pujar els fitxers via ftp en l'altre panell. Tot i que aquest mètode requereix fer un treball manual, no requereix privilegis de root.

289

4.8.2 Arrencar imatges webboot

290

Mentre que alguns usuaris prefereixen utilitzar la virtualització per prova el webbooting, en aquest cas utilitzem maquinari real perquè coincideixi amb el següent cas d'ús, que només ha de ser considerat com un exemple.

291

Per a arrencar una imatge webboot és suficient tenir els components esmentats anteriorment, és a dir, `vmlinuz` i `initrd.img` en una memòria usb dins d'un directori anomenat `live/` i instal·lar syslinux com a gestor d'arrencada. Després, arrencar des de la memòria usb i escriure `fetch=URL/RUTA/AL/FITXER` a les opcions d'arrencada. live-boot descarregarà l'arxiu squashfs i l'emmagatzemarà en la memòria ram. D'aquesta manera, és possible utilitzar el sistema de fitxers comprimit descarregat com si fos un sistema viu normal. Per exemple:

292

append boot=live components fetch=http://192.168.2.50/images/webboot/filesystem.squashfs

293

Cas d'ús: Tenir un servidor web en el qual s'ha emmagatzemat dos arxius squashfs, un que conté un escriptori complet, com ara gnome, i un standard. Si es necessita un entorn gràfic per a una màquina, es pot connectar la memòria usb i arrencar la imatge gnome. Si es necessita una de les eines que s'inclouen en el segon tipus d'imatge, potser per a una altra màquina, arrencar des de internet la imatge standard.