Live manual Debian Live

# Debian Live Manual

# Personalització dels comportaments en temps d'execució

519

# 10. Personalització dels comportaments en temps d'execució

520

Tota la configuració que es fa durant l'execució es feta per live-config. Aquestes són algunes de les opcions més comunes de live-config en que els usuaris estan interessats. Una llista completa de totes les possibilitats es poden trobar a la pàgina del manual de live-config.

521

10.1 Personalitzar l'usuari en viu

522

Una consideració important és que l'usuari en viu es creat per live-boot durant l'arrencada i no per live-build en temps de construcció. Això influeix no només en on s'han de introduir els materials relacionats amb l'usuari durant la construcció, tal i com es va explicar a Live/chroot local includes, sinó també en els grups i els permisos associats amb l'usuari.

523

You can specify additional groups that the live user will belong to by using any of the possibilities to configure live-config. For example, to add the live user to the `fuse` group, you can either add the following file in `config/includes.chroot/etc/live/config.conf.d/10-user-setup.conf`:

524

LIVE_USER_DEFAULT_GROUPS="audio cdrom dip floppy video plugdev netdev powerdev scanner bluetooth fuse"

525

o utilitzar `live-config.user-default-groups=audio,cdrom,dip,floppy,video,plugdev,netdev,powerdev,scanner,bluetooth,fuse` com paràmetre d'arrencada.

526

També és possible canviar el nom de l'usuari per defecte "user" i la contrasenya per defecte "live". Si es vol fer això per alguna raó, es pot aconseguir fàcilment de la següent manera:

527

Per a canviar el nom de l'usuari per defecte només s'ha d'especificar en la configuració:

528

$ lb config --bootappend-live "boot=live components username=live-user"

529

Una forma possible de canviar la contrasenya per defecte és per mitjà d'un ganxo com s'explica a Scripts ganxo durant l'arrencada. Per a fer això, es pot utilitzar el script ganxo "passwd" de `/usr/share/doc/live-config/examples/hooks`, posar-li un prefix adequat (per exemple 2000-passwd) i afegir-lo a `config/includes.chroot/lib/live/config/`

530

10.2 Personalització de l'entorn local i el llenguatge

531

Quan el sistema en viu arrenca, el llenguatge està implicat en dos passos:

532

- la generació de locales

533

- establir la configuració del teclat

534

La configuració local per defecte en la construcció d'un sistema viu és `locales=en_US.UTF-8`. Per a definir la locale que s'ha de generar, utilitzar el paràmetre `locales` de la opció `--bootappend-live` de `lb config`, per exemple.

535

$ lb config --bootappend-live "boot=live components locales=de_CH.UTF-8"

536

Es poden especificar diverses locales en una llista separada per comes.

537

Aquest paràmetre, així com els paràmetres de configuració del teclat que s'indiquen a continuació, també es pot utilitzar en la línia d'ordres del nucli. Es pot especificar una configuració regional mitjançant `language_country` (en aquest cas s'utilitza la codificació per defecte) o la forma completa `language_country.encoding`. Una llista de locales suportades i la codificació per a cadascuna es poden trobar a `/usr/share/i18n/SUPPORTED`.

538

`live-config` s'encarrega de la configuració del teclat per a X i per a la consola utilitzant el paquet `console-setup`. Per a la seva configuració es pot fer servir els paràmetres d'arrencada `keyboard-layouts`, `keyboard-variants`, `keyboard-options` i `keyboard-model` mitjançant l'opció `--bootappend-live`. Es poden trobar opcions vàlides per a aquests a `/usr/share/X11/xkb/rules/base.lst`. Per a trobar distribucions de teclat i variants per a un idioma determinat, s'ha d'intentar cercar el nom en anglès de la llengua i/o el país on es parla l'idioma, per exemple:

539

$ egrep -i '(^!|german.*switzerland)' /usr/share/X11/xkb/rules/base.lst
! model
! layout
ch German (Switzerland)
! variant
legacy ch: German (Switzerland, legacy)
de_nodeadkeys ch: German (Switzerland, eliminate dead keys)
de_sundeadkeys ch: German (Switzerland, Sun dead keys)
de_mac ch: German (Switzerland, Macintosh)
! option

540

Tinir en compte que cada variant mostra la distribució que s'aplica en la descripció.

541

Sovint, només la distribució necessita ser configurada. Per exemple, per a obtenir els fitxers de configuració regional per a la distribució del teclat alemany i suís-alemany per a l'entorn gràfic X:

542

$ lb config --bootappend-live "boot=live components locales=de_CH.UTF-8 keyboard-layouts=ch"

543

No obstant això, per als casos d'ús molt específics, potser es vol incloure altres paràmetres. Per exemple, per a establir un sistema francès, amb una distribució de teclat French-Dvorak (anomenat Bepo) en un teclat USB TypeMatrix EZ-Reach 2030, utilitzar:

544

$ lb config --bootappend-live \
"boot=live components locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-variants=bepo keyboard-model=tm2030usb"

545

Es poden especificar diversos valors per a cada una de les opcions `keyboard-*` en una llista separada per comes amb l'excepció de `keyboard-model`, que només accepta un valor. Veure la pàgina del manual `keyboard(5)` per a més detalls i exemples de les variables `XKBMODEL`, `XKBLAYOUT`, `XKBVARIANT` i `XKBOPTIONS`. Si s'especifiquen diversos valors de `keyboard-variants` es correspondran un a un amb els valors `keyboard-layouts` (veure `setxkbmap(1)` opció `-variant`). Es poden utilitzar valors buits, per exemple, per a definir dos dissenys, el valor predeterminat US QWERTY i l'altre US Dvorak:

546

$ lb config --bootappend-live \
"boot=live components keyboard-layouts=us,us keyboard-variants=,dvorak"

547

10.3 Persistència

548

Un paradigma d'un live cd és ser un sistema pre-instal·lat, que arrenca desde medis de només lectura, com un cdrom, on les modificacions no sobreviuen als reinicis del maquinari que l'executa.

549

Un sistema en viu és una generalització d'aquest paradigma i per tant, compatible amb altres medis, a més dels CDs, però tot i així, en el seu comportament per defecte, s'ha de considerar de només lectura i totes les evolucions en temps d'execució del sistema es perden al apagar l'equip.

550

La "Persistència" és un nom comú per a nomenar els diferents tipus de solucions per a guardar després de reiniciar algunes, o totes, les dades d'aquesta evolució en temps d'execució del sistema. Per a entendre com funciona, seria útil saber que, encara que el sistema s'inicia i s'executa des de medis de només lectura, les modificacions als fitxers i directoris s'escriuen ens medis d'escriptura, en general un ramdisk (tmpfs) i les dades dels discos ram no sobreviuen als reinicis.

551

Les dades emmagatzemades en aquest disc ram han de ser guardades en un suport d'escriptura persistent com medis d'emmagatzematge locals, un recurs compartit de xarxa o fins i tot una sessió d'una multisessió de un CD/DVD (re)grabable. Tots aquests medis són compatibles amb el sistemes en viu de diferents maneres, i tots menys l'últim, requereixen un paràmetre especial que s'especifica en l'arrencada: `persistence`.

552

Si s'utilitza el paràmetre d'arrencada `persistence` (i no s'utilitza `nopersistence`) es proven els medis locals d'emmagatzematge (per exemple, discs durs, unitats USB) buscant volums amb persistència durant l'arrencada. És possible restringir els tipus de volums amb persistència que s'utilitzarà mitjançant l'especificació de certs paràmetres d'arrencada que es descriuen a la pàgina del manual de live-boot(7). Un volum amb persistència és qualsevol dels següents:

553

- una partició, identificada pel seu nom GPT.

554

- un sistema de fitxers, identificat per la seva etiqueta de sistema de fitxers.

555

- un fitxer imatge situat en l'arrel de qualsevol sistema de fitxers llegibles (fins i tot una partició NTFS d'un altre SO), identificat pel seu nom de fitxer.

556

L'etiqueta de volum per als overlays ha de ser `persistence` però serà passat per alt a menys que contingui un fitxer anomenat `persistence.conf` que s'utilitza per a personalitzar completament la persistència del volum, és a dir, especificar els directoris que es volen conservar en el volum de persistència després de reiniciar. Veure El fitxer persistence.conf per a més detalls.

557

Aquests són alguns exemples de com preparar un volum que s'utilitzarà per a la persistència. Pot ser, per exemple, una partició ext4 en un disc dur o en una clau USB creat amb, per exemple:

558

# mkfs.ext4 -L persistence /dev/sdb1

559

Veure també Utilitzar l'espai lliure en una memòria USB.

560

Si ja hi ha una partició al dispositiu, és pot canviar l'etiqueta amb un dels següents:

561

# tune2fs -L persistence /dev/sdb1 # for ext2,3,4 filesystems

562

Heus aquí un exemple de com crear un fitxer imatge basat en ext4 per a ser utilitzat per a la persistència:

563

$ dd if=/dev/null of=persistence bs=1 count=0 seek=1G # for a 1GB sized image file
$ /sbin/mkfs.ext4 -F persistence

564

Un cop s'ha creat el fitxer imatge, per exemple, per a fer `/usr` persistent però només guardant els canvis que es fan en aquest directori i no tots els continguts de `/usr`, es pot utilitzar l'opció "union". Si el fitxer imatge es troba en el directori home, copiar-lo a l'arrel del sistema de fitxers del disc dur i muntar-lo a `/mnt` de la següent manera:

565

# cp persistence /
# mount -t ext4 /persistence /mnt

566

A continuació, crear el fitxer `persistence.conf` afegint contingut i desmuntar el fitxer imatge.

567

# echo "/usr union" >> /mnt/persistence.conf
# umount /mnt

568

Ara, reiniciar el sistema i arrencar el medi en viu amb el paràmetre d'arrencada "persistence".

569

10.3.1 El fitxer persistence.conf

570

Un volum amb l'etiqueta `persistence` ha de ser configurat mitjançant un fitxer `persistence.conf` per a fer directoris arbitraris persistents. Aquest fitxer, ubicat a l'arrel del sistema de fitxers del volum, controla els directoris que fa persistents, i de quina manera.

571

A la pàgina del manual de persistence.conf(5) s'explica en detall com es configuran els muntatges de les overlays, però un simple exemple hauria de ser suficient per a la majoria d'usos. Si es vol fer el directori home i el directori del cache d'APT persistents en un sistema de fitxers ext4 a la partició /dev/sdb1:

572

# mkfs.ext4 -L persistence /dev/sdb1
# mount -t ext4 /dev/sdb1 /mnt
# echo "/home" >> /mnt/persistence.conf
# echo "/var/cache/apt" >> /mnt/persistence.conf
# umount /mnt

573

Després es reinicia el sistema. Durant la primera arrencada els continguts de `/home` i `/var/cache/apt` es copiaran en el volum de la persistència, i d'aquí en endavant tots els canvis en aquests directoris es guardaran en aquest volum. Tenir en compte que les rutes que apareixen en el fitxer `persistence.conf` no poden contenir espais en blanc o els components especials `.` i `..`. A més, ni `/lib`, `/lib/live` (o qualsevol dels seus subdirectoris) ni `/` es poden fer persistents utilitzant muntatges personalitzats. Com a solució per a aquesta limitació es pot afegir `/ union` al fitxer `persistence.conf` per a aconseguir una persistència completa.

574

10.3.2 Utilitzar diversos medis persistents

575

Hi ha diferents mètodes per utilitzar múltiples volums de persistència per a diferents casos d'ús. Per exemple, utilitzar diversos volums al mateix temps o seleccionar-ne només un, entre varis, per a fins molt específics.

576

Es poden utilitzar diversos volums diferents de muntatges personalitzats (amb els seus propis fitxers `persistence.conf` però si diversos volums fan que el mateix directori sigui persistent, només s'utilitzarà un d'ells. Si qualsevol dels dos muntatges són "imbricats" (és a dir, un és un sub-directori de l'altre) el directori pare es muntarà abans que el directori fill per a evitar que amb el muntatge un directori no sigui ocultat per l'altre. Els muntatges personalitzats imbricats són problemàtics si estan enumerats en el mateix fitxer `persistence.conf`. Veure la pàgina del manual persistence.conf(5) per a saber com manejar aquest cas, si realment es necessita (una pista: en general no cal fer-ho).

577

Un possible cas d'ús: Per a guardar les dades de l'usuari, és a dir `/home` i les dades del superusuari, és a dir `/root` en diferents particions, crear dues particions amb l'etiqueta `persistence` i afegir un fitxer `persistence.conf` en cadascuna d'aquesta manera `# echo "/home" > persistence.conf` per a la primera partició que guardarà els fitxers de l'usuari i `# echo "/root" > persistence.conf` per a la segona partició que emmagatzemarà els fitxers del superusuari. Finalment, utilitzar el paràmetre d'arrencada `persistence`.

578

Si un usuari necessita múltiples volums de persistència del mateix tipus per a diferents ubicacions o proves, com `private` i `work`, el paràmetre d'arrencada `persistence-label` utilitzat juntament amb el paràmetre d'arrencada `persistence` permetrà tenir diversos dispositius amb la mateixa, però única, persistència. Un exemple seria si un usuari vol utilitzar una partició amb persistència amb l'etiqueta `private` per a dades personals com els marcadors d'un navegador, utilitzaria els paràmetres d'arrencada: `persistence` `persistence-label=private`. I per emmagatzemar dades relacionades amb el treball, com a documents, projectes de recerca o d'un altre tipus, utilitzaria els paràmetres d'arrencada: `persistence` `persistence-label=work`.

579

És important recordar que aquests volums, `private` i `work`, també necessiten tenir un fitxer `persistence.conf` en la seva arrel. La pàgina de manual de live-boot conté més informació sobre com utilitzar aquestes etiquetes amb els noms més antics.

580

10.3.3 Persistència amb xifratge

581

Utilitzar la persistència vol dir que algunes dades sensibles poden quedar exposades a risc. Especialment si les dades persistents s'emmagatzemen en un dispositiu portàtil com una memòria USB o un disc dur extern. És llavors quan el xifrat entra en joc. Fins i tot si el procediment pot semblar complicat a causa de la quantitat de passos que s'han de fer, és molt fàcil manejar particions xifrades amb live-boot. Per a utilitzar luks, que és el tipus de xifrat compatible, es necessita instal·lar cryptsetup tant en la màquina que crearà la partició xifrada com en el sistema en viu amb que es va a utilitzar la partició persistent xifrada.

582

Per a instal·lar cryptsetup a la nostra màquina:

583

# apt-get install cryptsetup

584

Per a instal·lar cryptsetup en el sistema viu, afegir-lo a una package-lists:

585

$ lb config
$ echo "cryptsetup" > config/package-lists/encryption.list.chroot

586

Una cop tinguem el nostre sistema en viu amb cryptsetup, bàsicament, només hem de crear una nova partició, xifrar-la i arrencar amb els paràmetres `persistence` i `persistence-encryption=luks`. Podríem haver anticipat aquest pas i afegit els paràmetres d'arrencada seguint el procediment habitual:

587

$ lb config --bootappend-live "boot=live components persistence persistence-encryption=luks"

588

Anem a entrar en els detalls per a tothom que no està familiaritzat amb el xifrat. En el següent exemple utilitzarem una partició en un dispositiu USB que correspon a `/dev/sdc2`. Tenir en compte que cal determinar quina partició és la que es va a utilitzar en cada cas específic.

589

El primer pas és connectar la memòria usb i determinar de quin dispositiu es tracta. La manera més recomanable per a llistar dispositius és utilitzar `ls -l /dev/disk/by-id`. Després d'això, crear una nova partició i, a continuació, xifrar-la amb una frase de contrasenya de la següent manera:

590

# cryptsetup --verify-passphrase luksFormat /dev/sdc2

591

A continuació, obrir la partició luks al mapeador de dispositius virtuals. Es pot utilitzar qualsevol nom que es desitgi. Aquí utilitzem live com a exemple:

592

# cryptsetup luksOpen /dev/sdc2 live

593

El següent pas és omplir el dispositiu amb zeros abans de crear el sistema de fitxers:

594

# dd if=/dev/zero of=/dev/mapper/live

595

Ara, estem preparats per a crear el sistema de fitxers. Noteu que estem afegint l'etiqueta `persistence` perquè el dispositiu es munti com a magatzem de persistència durant l'arrencada.

596

# mkfs.ext4 -L persistence /dev/mapper/live

597

Per continuar amb la nostra configuració, necessitem muntar el dispositiu, per exemple, a `/mnt`.

598

# mount /dev/mapper/live /mnt

599

I crear el fitxer `persistence.conf` a l'arrel de la partició. Això és, com s'ha explicat abans, estrictament necessari. Veure El fitxer persistence.conf.

600

# echo "/ union" > /mnt/persistence.conf

601

Desmuntar el punt de muntatge:

602

# umount /mnt

603

I opcionalment, encara que podria ser una bona manera de protegir les dades que acabem d'agregar a la partició, podem tancar el dispositiu:

604

# cryptsetup luksClose live

605

Anem a resumir el procés. Fins ara, hem creat un sistema viu capaç de manejar xifratge, que es pot copiar a una memòria USB com s'explica a Copiar una imatge ISO híbrida en un dispositiu USB. També hem creat una partició xifrada, que es pot situar en la mateixa memòria USB per portar a tot arreu i hem configurat la partició xifrada per ser utilitzada com a magatzem de persistència. Així que ara, només hem de arrencar el sistema en viu. En el moment d'arrencar, live-boot ens preguntarà la frase de contrasenya i muntarà la partició xifrada per a ser utilitzada per a la persistència.