Manual Debian Live

Sobre aquest manual

1. Sobre aquest manual

1.1 Per als impacients
1.2 Termes
1.3 Autors
1.4 Contribuir en aquest document
1.4.1 Aplicar canvis
1.4.2 Traducció

2. Sobre el Projecte Debian Live

2.1 Motivació
2.1.1 Què passa amb els sistemes vius actuals
2.1.2 Per què crear el nostre pròpi sistema viu?
2.2 Filosofia
2.2.1 Només paquets Debian sense modificacions de la secció "main"
2.2.2 Paquets del sistema viu sense cap configuració
2.3 Contacte

Usuari

3. Instaŀlació

3.1 Requeriments
3.2 Instaŀlació de live-build
3.2.1 Des del repositori de Debian
3.2.2 À partir del codi font
3.2.3 A partir d'instantànies
3.3 Instal.lació de live-boot i live-config
3.3.1 Des del repositori de Debian
3.3.2 À partir del codi font
3.3.3 A partir d'instantànies

4. Conceptes bàsics

4.1 Què és un sistema viu?
4.2 Primers passos: construcció d'una imatge ISO híbrida
4.3 Usar una imatge ISO híbrida en viu
4.3.1 Gravar una imatge ISO en un medi físic
4.3.2 Còpiar una imatge ISO híbrida en un dispositiu USB
4.3.3 Arrencar els medis en viu
4.4 Utilitzar una màquina virtual per fer proves
4.4.1 Provar una imatge ISO amb QEMU
4.4.2 Provar una imatge ISO amb virtualbox-ose
4.5 Construir una imatge HDD
4.6 Utilitzar una imatge HDD
4.6.1 Provar una imatge HDD amb Qemu
4.6.2 Utilitzar l'espai lliure en una memòria USB
4.7 Construir una imatge netboot
4.7.1 Servidor DHCP
4.7.2 Servidor TFTP
4.7.3 Servidor NFS
4.7.4 Com provar l'arrencada en xarxa
4.7.5 Qemu
4.7.6 VMWare Player

5. Descripció general de les eines

5.1 El paquet live-build
5.1.1 L'ordre lb config
5.1.2 L'ordre lb build
5.1.3 L'ordre lb clean
5.2 El paquet live-boot
5.3 El paquet live-config

6. Gestió d'una configuració

6.1 Gestionar canvis a la configuració
6.1.1 Per què utilitzar scripts auto? Què fan?
6.2 Utilitzar scripts auto d'exemple
6.3 Clonar una configuració publicada via Git

7. Personalització dels continguts

7.1 Configuració durant la construcció vs. durant l'arrencada
7.2 Etapes de la construcció
7.3 Suplementar lb config amb fitxers
7.4 Tasques de personalització

8. Personalització de la instaŀlació de paquets

8.1 Fonts dels paquets
8.1.1 Distribució, zones d'arxiu i mode
8.1.2 Miralls de distribució
8.1.3 Miralls de distribució utilitzats en temps de construcció
8.1.4 Miralls de distribució utilitzats en temps d'execució
8.1.5 Repositoris addicionals
8.2 Selecció dels paquets a instaŀlar
8.2.1 Llistes de paquets
8.2.2 Using metapackages
8.2.3 Llistes locals de paquets
8.2.4 Llistes locals de paquets per l'etapa binary
8.2.5 Generar llistes de paquets
8.2.6 Ús de condicionals dins de les llistes de paquets
8.2.7 Tasques d'escriptori i llenguatge
8.3 Instaŀlació de paquets modificats o de tercers
8.3.1 Fer servir packages.chroot per instaŀar paquets personalitzats
8.3.2 Fer servir un repositori APT per instaŀlar paquets personalitzats
8.3.3 Paquets personalitzats i APT
8.4 Configurar APT en temps de construcció
8.4.1 Seleccionar apt o aptitude
8.4.2 L'ús d'un proxy amb APT
8.4.3 Tweaking APT to save space
8.4.4 Passar opcions per a apt o aptitude
8.4.5 APT pinning

9. Personalització dels continguts

9.1 Includes
9.1.1 Live/chroot local includes
9.1.2 Binary local includes
9.2 Scripts ganxo (Hooks)
9.2.1 Live/chroot local hooks
9.2.2 Scripts ganxo durant l'arrencada
9.2.3 Binary local hooks
9.3 Preconfiguració de les preguntes de Debconf

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

10.1 Personalitzar l'usuari en viu
10.2 Personalització de l'entorn local i el llenguatge
10.3 Persistència
10.3.1 El fitxer live-persistence.conf
10.3.2 Utilitzar més d'un magatzem de persistència

11. Customizing the binary image

11.1 Bootloader
11.2 ISO metadata

12. Customizing Debian Installer

12.1 Types of Debian Installer
12.2 Customizing Debian Installer by preseeding
12.3 Customizing Debian Installer content

Projecte

13. Reporting bugs

13.1 Known issues
13.2 Rebuild from scratch
13.3 Use up-to-date packages
13.4 Collect information
13.5 Isolate the failing case if possible
13.6 Use the correct package to report the bug against
13.6.1 At build time whilst bootstrapping
13.6.2 At build time whilst installing packages
13.6.3 At boot time
13.6.4 At run time
13.7 Do the research
13.8 Where to report bugs

14. Coding Style

14.1 Compatibility
14.2 Indenting
14.3 Wrapping
14.4 Variables
14.5 Miscellaneous

15. Procedures

15.1 Udeb Uploads
15.2 Major Releases
15.3 Point Releases
15.3.1 Last Point Release of a Debian Release
15.3.2 Point release announcement template

Exemples

16. Examples

16.1 Using the examples
16.2 Tutorial 1: A standard image
16.3 Tutorial 2: A web browser utility
16.4 Tutorial 3: A personalized image
16.4.1 First revision
16.4.2 Second revision
16.5 A VNC Kiosk Client
16.6 A base image for a 128M USB key
16.7 A localized KDE desktop and installer

Apèndix

17. Style guide

17.1 Guidelines for authors
17.1.1 Linguistic features
17.1.2 Procedures
17.2 Guidelines for translators
17.2.1 Translation hints

Manual Debian Live

Usuari

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

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.

10.1 Personalitzar l'usuari en viu

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.

Es pot especificar grups addicionals als que pertanyerà l'usuari en viu fent una preconfiguració (preseed) prèvia del valor debconf passwd/user-default-groups. Per exemple, per afegir l'usuari en viu al grup fuse, afegir la següent configuració preseed a l'etapa chroot:

$ lb config
$ echo user-setup passwd/user-default-groups string audio cdrom \
   dip floppy video plugdev netdev powerdev scanner bluetooth fuse \
   >> config/preseed/my.preseed.chroot

També és possible canviar el nom d'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:

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

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

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 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/

10.2 Personalització de l'entorn local i el llenguatge

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

  • la generació de locales
  • establir la configuració del teclat
  • L'entorn local per omissió en la construcció d'un sistema viu és locales=en_US.UTF-8. Per definir la configuració regional que s'ha de generar, utilitzar el paràmetre locales de la opció --bootappend-live de lb config, per exemple.

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

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

    Aquest paràmetre, així com els paràmetres de configuració del teclat que s'indican 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.

    live-config s'encarrega de la configuració del teclat per X i per la consola utilitzant el paquet console-setup. Per la seva configuració es por 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 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:

    $ 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

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

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

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

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

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

    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 de manual keyboard(5) per a més detalls i exemples de les variables XKBMODEL, XKBLAYOUT, XKBVARIANT y XKBOPTIONS. Si s'especifican 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 definir dos dissenys, el valor predeterminat US QWERTY i l'altre US Dvorak:

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

    10.3 Persistència

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

    Un sistema Debian Live é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.

    La "Persistència" és un nom comú per nomenar els diferents tipus de solucions per guardar després de reiniciar algunes, o totes, les dades d'aquesta evolució en temps d'execució del sistema. Per 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.

    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 Debian Live de diferents maneres, i totes menys l'última d'elles requereixen un paràmetre d'arrencada especial que s'especifica en l'arrencada: persistence.

    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:

  • una partició, identificada pel seu nom GPT.
  • un sistema de fitxers, identificat per la seva etiqueta de sistema de fitxers.
  • 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. En aquest cas el nom del fitxer ha d'utilitzar també el sistema de fitxers que conté com extensió del nom, per exemple, "persistence.ext4".
  • L'etiqueta de volum per als overlays ha de ser persistence. I per tal de personalitzar completament la persistència del volum hi ha d'haver un arxiu anomenat live-persistence.conf. Veure El fitxer live-persistence.conf

    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:

    # mkfs.ext4 -L persistence /dev/sdb1

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

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

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

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

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

    A continuació, copiar el fitxer persistence a l'arrel d'una partició d'escriptura.

    10.3.1 El fitxer live-persistence.conf

    Un volum amb l'etiqueta persistence pot ser configurat per fer directoris arbitraris persistents. El fitxer live-persistence.conf, ubicat a l'arrel del sistema de fitxers del volum, controla els directoris que fa persistents, i de quina manera.

    A la pàgina de manual de live-persistence.conf(5) s'explica en detall com es configuran els muntatges de les overlays, però un simple exemple hauria de ser suficient per 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:

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

    Després es reinicia el sistema. Durant la primera arrencada el contingut 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 el volum de la persistència. Tenir en compte que les rutes que apareixen en el fitxer live-persistence.conf no poden contenir espais en blanc o els components especials . i ... A més, ni /live (o qualsevol dels seus subdirectoris) ni / es poden fer persistents utilitzant muntatges personalitzats.

    Es poden utilitzar diversos volums diferents de muntatges personalitzats (amb els seus propis fitxers live-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 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 live-persistence.conf. Veure la pàgina de manual live-persistence.conf(5) per saber com manejar aquest cas, si realment es necessita (una pista: en general no cal fer-ho).

    10.3.2 Utilitzar més d'un magatzem de persistència

    Si un usuari necessita múltiples magatzems de persistència del mateix tipus per a diferents ubicacions o proves, com persistence-nonwork i persistence-work, el paràmetre d'arrencada persistence-label utilitzat juntament amb el paràmetre d'arrencada persistence permetrà tenir diversos medis amb la mateixa persistència. Un exemple seria si un usuari vol escollir una partició amb persistència amb l'etiqueta persistence-subText utilitzaria els paràmetres d'arrencada: persistence persistence-label=subText.