Difference between revisions of "Archiso (Italiano)"

From ArchWiki
Jump to: navigation, search
(creata pagina italiana)
 
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:Live_Arch_systems_(English)]]
+
[[Category:Live_Arch_systems_(Italiano)]]
{{i18n|Archiso}}
+
[[el:Archiso]]
 +
[[en:Archiso]]
 +
[[es:Archiso]]
 
[[fr:Archiso]]
 
[[fr:Archiso]]
{{translateme}}
+
[[nl:Archiso]]
'''Archiso''' is a small set of bash scripts that is capable of building fully functional '''Arch Linux based live CD/DVD and USB images'''. It is a very generic tool, so it could potentially be used to generate anything from rescue systems, to install disks, to special interest live CD/DVD/USB systems, and who knows what else. Simply put, if it involves Arch on a shiny coaster, it can do it.
+
[[ru:Archiso]]
The heart and soul of Archiso is '''mkarchiso'''. All of its options are documented in its usage output, so its direct usage wont be covered here. Instead, this wiki article will act as a guide for rolling your own live mediums in no time!
+
[[uk:Archiso]]
 +
{{Out of date|The translation needs to be updated.}}
  
Due to recent changes, '''Archiso''' will now automatically create ISO images that are also USB images! Separate CD/USB targets are therefore no longer necessary.
+
'''Archiso''' è un piccolo set di script bash capace di creare '''immagini live CD/DVD e USB basate su Arch Linux'''. È uno strumento molto generico, dunque potenzialmente potrebbe essere usato per generare qualsiasi cosa da sistemi di salvataggio, a dischi di installazione, ad interessanti sistemi live CD/DVD/USB speciali e chissà cos'altro.
 +
Il cuore e l'anima di Archiso è '''mkarchiso'''. Tutte le sue opzioni sono documentate nell'output di utilizzo, quindi il suo diretto utilizzo non verrà trattato qui. Questo articolo, invece, vuole essere una guida per creare i propri live media.
 +
In seguito a recenti modifiche, adesso '''Archiso''' creerà automaticamente immagini ISO utilizzabili anche come immagini USB!
 +
{{Nota|Ci sono due metodi per creare il live media in base alle tue intenzioni.
  
{{Note|There are two methods to creating the live media, depending on your intentions.  
+
Se vuoi creare un versione live di Arch Linux completamente personalizzata, pre-installata con tutti i tuoi programmi e configurazioni preferiti, vai alla sezione 1.
  
If you wish to create a fully customised live version of Arch Linux, pre-installed with all your favourite programs and configurations, see section 1.
+
Se vuoi soltanto creare un live media base, senza pacchetti pacchetti pre-installati e con configurazioni minimali, allora passa alla sezione 2.}}
  
If you just want to create the most basic live media, with no pre-installed packages and minimalistic configurations, then skip to section 2.}}
+
== Creare un live media di Arch Linux Personalizzato. (configs/relengs) ==
 
+
*Alcuni pacchetti sono necessari prima di procedere, installa quindi devtools. Servirà anche git se scegli di installare gli script archiso dal repository git (consigliato) e non da AUR.
== Building a custom Arch Linux live media. (configs/releng) ==
+
 
+
*Some packages are needed before we can proceed, so if not already installed, go ahead and get devtools. git will also be needed if you choose to install the archiso scripts from the git repository (recommended), and not from AUR.
+
  
 
  [host] # pacman -S devtools git --needed
 
  [host] # pacman -S devtools git --needed
  
*Create a chroot to work in, and install the base packages to this chroot.
+
*Crea un ambiente chroot in cui lavorare e installa i pacchetti base in questo chroot
  
  [host] # mkarchroot /home/youruser/archlive base
+
  [host] # mkarchroot /home/nomeutente/archlive base
  
*Go ahead and get the archiso scripts, which carry out the beef of the work for us, and install them into the chroot.
+
*Scarica adesso gli script archiso ed installali nel chroot.
  
 
  [host] # git clone git://projects.archlinux.org/archiso.git
 
  [host] # git clone git://projects.archlinux.org/archiso.git
  [host] # make -C archiso/archiso DESTDIR=/home/youruser/archlive install
+
  [host] # make -C archiso/archiso DESTDIR=/home/nomeutente/archlive install
  
You can also install archiso from AUR, [http://aur.archlinux.org/packages.php?ID=25996 here], but I recommend the git method above.
+
Puoi anche installare archiso da AUR, [https://aur.archlinux.org/packages.php?ID=25996 qui], ma si consiglia il metodo precedente da git.
  
* Enter the newly created chroot:
+
* Entra nell'ambiente chroot appena creato
  [host] # mkarchroot -r bash /home/youruser/archlive
+
  [host] # mkarchroot -r bash /home/nomeutente/archlive
  
* Create a device node. Note: You must do this '''every time''' you enter the chroot.
+
* Crea un device node. Nota: Devi fare questo '''ogni volta''' entri nel chroot.
 
  [chroot] # mknod /dev/loop0 b 7 0
 
  [chroot] # mknod /dev/loop0 b 7 0
  
* Setup a mirror with a command below, or uncomment your preferred one within /etc/pacman.d/mirrorlist  
+
* Configura un mirror con il seguente comando, o decommenta quello che preferisci all'interno di /etc/pacman.d/mirrorlist
{{Note|Change MIRROR to your preference}}
+
{{Nota|Sostituisci MIRROR secondo le tue preferenza}}
 
  [chroot] # echo 'Server = MIRROR/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
 
  [chroot] # echo 'Server = MIRROR/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
  
* Now we are inside the chroot, install a few packages.
+
* Adesso siamo all'interno del chroot, installiamo alcuni pacchetti.
  [chroot] # pacman -Sy devtools libisoburn squashfs-tools
+
  [chroot] # pacman -S devtools libisoburn squashfs-tools
  
* Copy over the archiso scripts that were installed earlier to a location that we can work from, /tmp will do.
+
*Copia gli script archiso installati prima, in una posizione da cui possiamo lavorare, come /tmp.
All the modifications we do to our live image will take place inside this /tmp directory within your chroot.
+
Tutte le modifiche che faremo all'immagine live verranno effettuate all'interno della cartella /tmp dentro chroot.
 
  [chroot] # cp -r /usr/share/archiso/configs/releng/ /tmp
 
  [chroot] # cp -r /usr/share/archiso/configs/releng/ /tmp
  
* CD into this directory:
+
* CD in questa cartella:
 
  [chroot] cd /tmp/releng
 
  [chroot] cd /tmp/releng
and now skip ahead to [[Archiso#Configure_our_live_medium]].
+
adesso passa a [[Archiso_(Italiano)#Configurare_il_live_media]].
  
== Building the most basic Arch Linux live media. (configs/baseline) ==
+
== Creare il live media di Arch Linux base. (configs/baseline) ==
  
Follow all of the instructions above; however, instead of copying usr/share/archiso/configs/releng to your working directory, use usr/share/archiso/configs/baseline:
+
Segui tutte le istruzione qui sopra; tuttavia, invece di copiare /usr/share/archiso/configs/releng nella cartella in cui lavorare, usa /usr/share/archiso/configs/baseline:
  
 
  [chroot] # cp -r /usr/share/archiso/configs/baseline /tmp
 
  [chroot] # cp -r /usr/share/archiso/configs/baseline /tmp
  
* You can now proceed with building the image, which will output an iso file to /tmp/out (or to wherever you are working from), which can the be burnt to a CD, or dd'd to a USB.
+
* Ora puoi costruire l'immagine, che originerà un file iso in /tmp/out (o in qualsiasi cartella da cui stai lavorando), che può essere scritta su CD o copiata con dd su USB.
 
  [chroot] # ./build.sh -v
 
  [chroot] # ./build.sh -v
  
* Exit from chroot.
+
* Esci da chroot.
 
  [chroot] # exit
 
  [chroot] # exit
  
== General workflow (manual way) ==
+
== Flusso di lavoro generale (metodo manuale) ==
  
* Setup a base filesystem
+
* Configura un filesystem base
 
  mkarchiso -p "base" create
 
  mkarchiso -p "base" create
  
* Install syslinux
+
* Installa syslinux
 
  mkarchiso -p "syslinux" create
 
  mkarchiso -p "syslinux" create
  
* Install other packages (optional)
+
* Installa altri pacchetti (opzionale)
 
  mkarchiso -p "pkg1 pkg2 pkg3 ... pkgN" create
 
  mkarchiso -p "pkg1 pkg2 pkg3 ... pkgN" create
  
* At this point, customize anything what you want in root-image, then exit when done.
+
* A questo punto, personalizza quello che vuoi in root-image, quindi esci appena hai finito.
  
 
  mkarchroot -n -r bash work/root-image
 
  mkarchroot -n -r bash work/root-image
  
* Setup initramfs image.
+
* Configura l'immagine initramfs.
  
** Copy needed hooks to root-image
+
** Copia gli hook necessari in root-image.
  
 
  cp /lib/initcpio/hooks/archiso work/root-image/lib/initcpio/hooks
 
  cp /lib/initcpio/hooks/archiso work/root-image/lib/initcpio/hooks
 
  cp /lib/initcpio/install/archiso work/root-image/lib/initcpio/install
 
  cp /lib/initcpio/install/archiso work/root-image/lib/initcpio/install
  
** Create a config for mkinitcpio '''work/root-image/etc/mkinitcpio-archiso.conf'''
+
** Crea un config per mkinitcpio '''work/root-image/etc/mkinitcpio-archiso.conf'''.
 
  HOOKS="base udev archiso sata filesystems"
 
  HOOKS="base udev archiso sata filesystems"
 
  COMPRESSION="xz"
 
  COMPRESSION="xz"
  
** Create a folder named as your PC's architecture:
+
** Crea una cartella col nome dell'architettura del tuo PC:
 
  mkdir work/root-image/boot/i686
 
  mkdir work/root-image/boot/i686
** and generate the initramfs image
+
** e genera l'immagine initramfs
 
  mkarchroot -n -r "mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/i686/archiso.img" work/root-image
 
  mkarchroot -n -r "mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/i686/archiso.img" work/root-image
  
* Move kernel/initramfs to boot/
+
* Sposta kernel/initramfs in boot/
 
  mkdir -p work/iso/arch/boot/i686
 
  mkdir -p work/iso/arch/boot/i686
 
  mv work/root-image/boot/vmlinuz-linux work/iso/arch/boot/i686/vmlinuz
 
  mv work/root-image/boot/vmlinuz-linux work/iso/arch/boot/i686/vmlinuz
 
  mv work/root-image/boot/i686/archiso.img work/iso/arch/boot/i686/archiso.img
 
  mv work/root-image/boot/i686/archiso.img work/iso/arch/boot/i686/archiso.img
  
* Setup syslinux
+
* Configura syslinux
  
** Create a directory for it.
+
** Crea una cartella.
 
   mkdir -p work/iso/arch/boot/syslinux
 
   mkdir -p work/iso/arch/boot/syslinux
  
** Create a '''work/iso/arch/boot/syslinux/syslinux.cfg''' file.
+
** Crea un file '''work/iso/arch/boot/syslinux/syslinux.cfg'''.
  
 
<pre>
 
<pre>
Line 122: Line 125:
 
</pre>
 
</pre>
  
** Copy menu.c32 needed by previous config.
+
** Copia menu.c32.
 
  cp work/root-image/usr/lib/syslinux/menu.c32 work/iso/arch/boot/syslinux/
 
  cp work/root-image/usr/lib/syslinux/menu.c32 work/iso/arch/boot/syslinux/
  
* Setup isolinux (optional, only needed for booteable iso)
+
* Configura isolinux (opzionale, necessario solo per le iso avviabili)
  
 
  mkdir work/iso/isolinux
 
  mkdir work/iso/isolinux
Line 131: Line 134:
 
  cp work/root-image/usr/lib/syslinux/isohdpfx.bin work/iso/isolinux/
 
  cp work/root-image/usr/lib/syslinux/isohdpfx.bin work/iso/isolinux/
  
** Create a '''work/iso/isolinux/isolinux.cfg'''
+
** Crea '''work/iso/isolinux/isolinux.cfg'''
 
<pre>
 
<pre>
 
DEFAULT loadconfig
 
DEFAULT loadconfig
Line 140: Line 143:
 
</pre>
 
</pre>
  
* Create an '''work/iso/arch/aitab''' file.
+
* Crea il file '''work/iso/arch/aitab'''.
 
  # <img>        <mnt>                <arch>  <sfs_comp>  <fs_type>  <fs_size>
 
  # <img>        <mnt>                <arch>  <sfs_comp>  <fs_type>  <fs_size>
 
  root-image      /                    i686    xz          ext4      50%
 
  root-image      /                    i686    xz          ext4      50%
  
* Build all filesystem images specified in aitab (.fs .fs.sfs .sfs)
+
* Crea tutte le immagini del filesystem specificate in aitab (.fs .fs.sfs .sfs)
 
  mkarchiso prepare
 
  mkarchiso prepare
  
* Generate an ISO 9660 with "El Torito" boot image (optional)
+
* Genera un ISO 9660 con l'immagine d'avvio "El Torito" (opzionale)
 
  mkarchiso -L "MY_ARCH" iso "my-arch.iso"
 
  mkarchiso -L "MY_ARCH" iso "my-arch.iso"
  
== Make a booteable "pendrive" that have more things than "Arch Linux" ==
+
== Creare una "pendrive" avviabile che ha più cose di "Arch Linux" ==
  
Install the master boot sector code.
+
Installa il codice del settore di master boot.
 
  dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr.bin of=/dev/pen
 
  dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr.bin of=/dev/pen
  
Setup a filesystem label (for ext2/3/4)
+
Configura un'etichetta del filesystem (per ext2/3/4)
 
  e2label /dev/pen1 MY_ARCH
 
  e2label /dev/pen1 MY_ARCH
  
Setup a filesystem label (for vfat)
+
Configura un'etichetta del filesystem (per vfat)
 
  dosfslabel /dev/pen1 MY_ARCH
 
  dosfslabel /dev/pen1 MY_ARCH
  
Mount and copy "work/iso/arch" directory
+
Monta e copia la cartella "work/iso/arch"
 
  mount /dev/pen1 /mnt/pen1
 
  mount /dev/pen1 /mnt/pen1
 
  cp -r work/iso/arch /mnt/pen1
 
  cp -r work/iso/arch /mnt/pen1
  
Install extlinux then unmount (partition must be marked as booteable)
+
Installa extlinux e smontala (la partizione deve essere segnata come avviabile)
 
  extlinux -i /mnt/pen1/arch/boot/syslinux
 
  extlinux -i /mnt/pen1/arch/boot/syslinux
 
  umount /mnt/pen1
 
  umount /mnt/pen1
  
== Configure our live medium ==
+
== Configurare il live media ==
  
Inside the chroot and within directory you are working from (/tmp if you have been following this guide), you will see a number of files and directory called root-image; use should only be concerned with a few of these files, and most definitely concerned with the root-image directory; this directory acts as an overlay and it is where you make all the customisations.
+
Dentro l'ambiente chroot e dentro la cartella da cui lavori (/tmp se hai seguito questa guida), vedrai diverse cartelle chiamate root-image; dovrebbero interessare solo alcuni di questi file ed in particolare la cartella root-image; questa cartella farà da overlay ed è dove farai ogni personalizzazione.
  
=== Installing packages ===
+
=== Installare i pacchetti ===
  
You'll also want to create a list of packages you want installed on your live CD system. A file full of package names, one-per-line, is the format for this. This is '''''great''''' for special interest live CDs, just specify packages you want and bake the image.
+
Vorrai anche creare una lista di pacchetti che vuoi installare sul tuo live CD. Un file pieno di nomi di pacchetti, uno per riga, è il formato per fare questo. Questo è '''''grandioso''''' per live CD di particolare interesse, dovrai solo specificare i pacchetti che vuoi e scrivere l'immagine.
Edit the packages.i686, or packages.x86_64 file depending on whether you are create a 32bit, or 64bit image, respectively.
+
Modifica il file packages.i686 o packages.x86_64 per creare un'immagine, rispettivamente, a 32bit o a 64bit.
 
   
 
   
{{Tip|You can also create a '''[[custom local repository]]''' for the purpose of preparing custom packages or packages from [[AUR]]/[[ABS]]. Just add your local repository at the first position (for top priority) of your build machine's '''pacman.conf''' and you are good to go!}}
+
{{Suggerimento|Puoi anche creare un '''[[custom local repository]]''' allo scopo di preparare pacchetti personalizzati o pacchetti da [[AUR]]/[[ABS]]. Aggiungi il tuo repository locale alla prima posizione (per la massima priorità) del file '''/etc/pacman.conf''' in chroot.}}
  
  
=== Adding a user ===
+
=== Aggiungere un utente ===
  
There are two methods to creating a user: either by issuing the relevant useradd command or by copying over (and modify) /etc/shadow, /etc/passwd, and /etc/group.
+
Ci sono due metodi per creare un utente: attraverso il comando useradd o anche sovrascrivendo /etc/shadow, /etc/passwd e /etc/group.
The latter method shall be discussed here.
+
Quest'ultimo metodo è mostrato di seguito.
  
Copy your /etc/shadow, /etc/passwd, and /etc/group from your '''host''' system to /etc/ '''within your chroot'''
+
Copia i tuoi /etc/shadow, /etc/passwd e /etc/group dal tuo sistema '''host''' a /etc/ all'interno del sistema '''chroot'''.
e.g.
+
Esempio
  [host] $ cp /etc/{shadow,passwd,group} /home/youruser/archlive/tmp/root-image/etc/
+
  [host] $ cp /etc/{shadow,passwd,group} /home/nomeutente/archlive/tmp/root-image/etc/
  
{{Warning|The passwd file will contain your encrypted password. I recommend before you copy the passwd file over to the chroot, you change the password of your host user to that which you want your live user to have, copy the passwd file over, and then change back your password.}}
+
{{Attenzione|Il file passwd contiene le password criptate. Si raccomanda, prima di copiare il file, di cambiare la password del proprio utente host in quella che dovrà avere l'utente live, copiare il file passwd, quindi ripristinare la propria password.}}
  
=== Populating the users /home directory ===
+
=== Popolare la cartella /home dell'utente ===
  
To have the live users home directory populated with files, simply create a skel directory within root-image/etc/, and copy any files you would like there, and add the relevant commands to an rc.local file so:
+
Crea la cartella skel all'interno di root-image, copia i file che desideri dalla tua cartella /home ed aggiungi i relativi comandi in rc.local, in questo modo:
  
*Create the skel directory:
+
*Crea la cartella skel:
 
  [chroot] cd root-image/etc/ && mkdir skel
 
  [chroot] cd root-image/etc/ && mkdir skel
  
*Copy your files over from your '''host''' machine to the '''chroot''',
+
*Copia i tuoi file da /home/nomeutente:
e.g for .bashrc.
+
esempio per .bashrc  
  [host] # cp ~/.bashrc /home/youruser/archlive/tmp/root-image/etc/skel/
+
  [host] # cp ~/.bashrc /home/nomeutente/archlive/tmp/root-image/etc/skel/
{{Note|You must be root to do this, do not change the ownership of any of the files you copy over, everything within the root-image directory must be root owned, ownership will be sorted out shortly.}}
+
{{Nota|Dovrai fare questo da root, non è possibile cambiare il proprietario dei file da copiare in quanto tutto all'interno della cartella root-image dovrà appartenere all'utente root}}
  
*Inside the root-image/etc/ directory, create the rc.local file, and '''make sure''' you make it executable:
+
*Dentro la cartella root-image/etc, crea il file rc.local e '''assicurati''' di renderlo eseguibile:
  
 
  [chroot] # cd root-image/etc/
 
  [chroot] # cd root-image/etc/
 
  [chroot] # touch rc.local && chmod +x rc.local
 
  [chroot] # touch rc.local && chmod +x rc.local
  
*Now add the following:
+
*Adesso modificalo aggiungendo:
 
  # Create user directory for live session
 
  # Create user directory for live session
  if [ ! -d /home/'''youruser''' ]; then
+
  if [ ! -d /home/'''nomeutente''' ]; then
     mkdir /home/'''youruser''' && chown '''youruser''' /home/'''youruser'''
+
     mkdir /home/'''nomeutente''' && chown '''nomeutente''' /home/'''nomeutente'''
 
  fi
 
  fi
 
  # Copy files over to home
 
  # Copy files over to home
  su -c "cp -r /etc/skel/.[a-zA-Z0-9]* /home/'''youruser'''/" '''youruser'''
+
  su -c "cp -r /etc/skel/.[a-zA-Z0-9]* /home/'''nomeutente'''/" '''nomeutente'''
  
 
=== mkinitcpio.conf ===
 
=== mkinitcpio.conf ===
  
An ''initcpio'' is necessary for creating a system that is able to "wake-up" from a CD/DVD/USB, the default file should work fine, so you shouldn't need to touch it.
+
Un ''initcpio'' è essenziale per creare un sistema che possa avviarsi da CD/DVD/USB, il file predefinito dovrebbe funzionare bene, quindi non dovresti aver bisogno di toccarlo.
  
Therefore, you should create a mkinitcpio.conf that holds a list of our hooks:
+
Dovrai dunque creare un mkinitcpio.conf che contenga una lista dei tuoi hook:
 
  $ vim mkinitcpio.conf
 
  $ vim mkinitcpio.conf
A typical set of hooks for archiso looks something like this:
+
Un tipico set di hook per archiso dovrebbe somigliare a questo:
 
  HOOKS="base udev memdisk archiso archiso_pxe_nbd archiso_loop_mnt pata scsi sata usb fw pcmcia filesystems usbinput"
 
  HOOKS="base udev memdisk archiso archiso_pxe_nbd archiso_loop_mnt pata scsi sata usb fw pcmcia filesystems usbinput"
  
This list will get you a system that can be booted off a CD/DVD or a USB device. It's worth mentioning that hardware auto-detection and things of that nature do not belong here. Only what's necessary to get the system on its feet, and out of the ''initcpio'' really belong here, fancier stuff can be done on the booted system anyway.
+
Questa lista ti permetterà di avere un sistema che può essere avviato da un dispositivo CD/DVD o USB. Ovviamente auto-rilevamento dell'hardware ed altre cose della stessa natura non sono presenti. Solo il necessario a mettere in piedi il sistema e, a parte l'''initcpio'', il resto potrà comunque essere fatto a sistema avviato.
  
 
=== aitab ===
 
=== aitab ===
  
The aitab file holds information about the filesystems images that must be created by mkarchiso and mounted at initramfs stage from the archiso hook.
+
Il file aitab contiene informazioni relative alle immagini del filesystem che devono essere create da mkarchiso e montate dall'hook archiso in fase initramfs.
The default file should work fine, so you shouldn't need to touch it.
+
Il file di default dovrebbe andar bene e non dovrebbe necessitare di modifiche.
It consists of some fields which define the behaviour of images.
+
Consiste in alcuni campi che definiscono il comportamento delle immagini.
  
 
  # <img>        <mnt>                <arch>  <sfs_comp>  <fs_type>  <fs_size>
 
  # <img>        <mnt>                <arch>  <sfs_comp>  <fs_type>  <fs_size>
  
; <img>: Image name without extension (.fs .fs.sfs .sfs).
+
; <img>: Nome dell'immagine senza estensione (.fs .fs.sfs .sfs).
; <mnt>: Mount point.
+
; <mnt>: Punto di mount.
; <arch>: Architecture { i686 | x86_64 | any }.
+
; <arch>: Architettura { i686 | x86_64 | any }.
; <sfs_comp>: SquashFS compression type { gzip | lzo | xz }. A special value of "none" denotes no usage of SquashFS.
+
; <sfs_comp>: compressione SquashFS { gzip | lzo | xz }. Il valore speciale "none" disabilita SquashFS.
; <fs_type>:  Set the filesystem type of the image { ext4 | ext3 | ext2 | xfs }. A special value of "none" denotes no usage of a filesystem. In that case all files are pushed directly to SquashFS filesystem.
+
; <fs_type>:  Imposta il tipo di filesystem dell'immagine { ext4 | ext3 | ext2 | xfs }. Il valore speciale "none" disabilita l'uso di un filesystem. In questo caso tutti i file sono spostati direttamente al filesystem SquashFS.
; <fs_size>:  An absolute value of file system image size in MiB (example: 100, 1000, 4096, etc) A relative value of file system free space [in percent] {1%..99%} (example 50%, 10%, 7%). This is an estimation, and calculated in a simple way. Space used + 10% (estimated for metadata overhead) + desired %
+
; <fs_size>:  Un valore assoluto della grandezza in MiB dell'immagine del file system (esempio: 100, 1000, 4096, etc), un valore relativo dello spazio libero nel file system [in percentuale] {1%..99%} (example 50%, 10%, 7%).
  
{{Note|Some combinations are invalid. Example both sfs_comp and fs_type are set to none}}
+
{{Nota|Alcune combinazioni non sono valide. Ad esempio sia sfs_comp che fs_type sono impostate a none}}
  
 
=== Boot Loader ===
 
=== Boot Loader ===
The default file should work fine, so you shouldn't need to touch it.
+
Il file presente dovrebbe adattarsi alle tue esigenze.
  
 
<pre>
 
<pre>
Line 263: Line 266:
 
</pre>
 
</pre>
  
Due to the modular nature of isolinux, you are able to use lots of addons since all *.c32 files are copied and available to you. Take a look at the [http://syslinux.zytor.com/wiki/index.php/SYSLINUX official syslinux site] and the [http://projects.archlinux.org/archiso.git/tree/configs/syslinux-iso/boot-files archiso git repo]. Using said addons, it is possible to make visually attractive and complex menus. See [http://syslinux.zytor.com/wiki/index.php/Comboot/menu.c32 here].
+
Data la natura modulare di isolinux, puoi usare diversi addon dal momento che tutti i file *.c32 sono copiati e disponibili. Dai uno sguardo al [http://syslinux.zytor.com/wiki/index.php/SYSLINUX sito ufficiale di syslinux] e al [https://projects.archlinux.org/archiso.git/tree/configs/syslinux-iso/boot-files git repo di archiso]. Usando i suddetti addon è possibile rendere i menu visivamente gradevoli e complessi. Vedi [http://syslinux.zytor.com/wiki/index.php/Comboot/menu.c32 qui].
  
=== Finishing the root-image ===
+
=== Finire la root-image ===
Some tips that will not be covered in this article because there are other articles on this wiki that already do, but please feel free to add them here.
+
Alcuni consigli che non saranno affrontati in quest'articolo perchè ci sono già altri articoli su questa wiki che lo fanno, ma sentiti pure libero di aggiungerne altri qui.
*Configure an ''inittab'' to start into X at boot time
+
*Configurare ''inittab'' per far partire X all'avvio
*Configure the ''hosts'' file
+
*Configurare il fiel ''hosts''
*Configure ''rc.conf'' (no fancy modules required here)
+
*Configurare ''rc.conf'' (non sono richiesti moduli particolari)
*Configure ''sudoers''
+
*Configurare ''sudoers''
*Configure ''rc.local''
+
*Configurare ''rc.local''
*Put additional artworks onto the medium
+
*Mettere artwork aggiuntivi sul media
*Put arbitrary binary stuff into opt/
+
*Mettere altri file binari in opt/
  
== See also ==
+
== Vedi anche ==
*[http://projects.archlinux.org/?p=archiso.git;a=summary Archiso project page]
+
*[https://projects.archlinux.org/?p=archiso.git;a=summary Pagina del progetto Archiso]
*[[Archiso_as_pxe_server|Archiso as pxe server]]
+
*[[Archiso_as_pxe_server|Archiso come server pxe]]
*[https://kroweer.wordpress.com/2011/09/07/creating-a-custom-arch-linux-live-usb Step-by-step tutorial on using ArchISO]
+
*[https://kroweer.wordpress.com/2011/09/07/creating-a-custom-arch-linux-live-usb Guida passo-a-passo per usare ArchISO]
*[http://didjix.blogspot.com/ A live DJ distribution powered by ArchLinux and build with Archiso]
+
*[http://didjix.blogspot.com/ Una distribuzione live DJ basata su ArchLinux e creata con Archiso]

Revision as of 11:15, 30 November 2013

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: The translation needs to be updated. (Discuss in Talk:Archiso (Italiano)#)

Archiso è un piccolo set di script bash capace di creare immagini live CD/DVD e USB basate su Arch Linux. È uno strumento molto generico, dunque potenzialmente potrebbe essere usato per generare qualsiasi cosa da sistemi di salvataggio, a dischi di installazione, ad interessanti sistemi live CD/DVD/USB speciali e chissà cos'altro. Il cuore e l'anima di Archiso è mkarchiso. Tutte le sue opzioni sono documentate nell'output di utilizzo, quindi il suo diretto utilizzo non verrà trattato qui. Questo articolo, invece, vuole essere una guida per creare i propri live media. In seguito a recenti modifiche, adesso Archiso creerà automaticamente immagini ISO utilizzabili anche come immagini USB!

Nota: Ci sono due metodi per creare il live media in base alle tue intenzioni.

Se vuoi creare un versione live di Arch Linux completamente personalizzata, pre-installata con tutti i tuoi programmi e configurazioni preferiti, vai alla sezione 1.

Se vuoi soltanto creare un live media base, senza pacchetti pacchetti pre-installati e con configurazioni minimali, allora passa alla sezione 2.

Creare un live media di Arch Linux Personalizzato. (configs/relengs)

  • Alcuni pacchetti sono necessari prima di procedere, installa quindi devtools. Servirà anche git se scegli di installare gli script archiso dal repository git (consigliato) e non da AUR.
[host] # pacman -S devtools git --needed
  • Crea un ambiente chroot in cui lavorare e installa i pacchetti base in questo chroot
[host] # mkarchroot /home/nomeutente/archlive base
  • Scarica adesso gli script archiso ed installali nel chroot.
[host] # git clone git://projects.archlinux.org/archiso.git
[host] # make -C archiso/archiso DESTDIR=/home/nomeutente/archlive install

Puoi anche installare archiso da AUR, qui, ma si consiglia il metodo precedente da git.

  • Entra nell'ambiente chroot appena creato
[host] # mkarchroot -r bash /home/nomeutente/archlive
  • Crea un device node. Nota: Devi fare questo ogni volta entri nel chroot.
[chroot] # mknod /dev/loop0 b 7 0
  • Configura un mirror con il seguente comando, o decommenta quello che preferisci all'interno di /etc/pacman.d/mirrorlist
Nota: Sostituisci MIRROR secondo le tue preferenza
[chroot] # echo 'Server = MIRROR/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
  • Adesso siamo all'interno del chroot, installiamo alcuni pacchetti.
[chroot] # pacman -S devtools libisoburn squashfs-tools
  • Copia gli script archiso installati prima, in una posizione da cui possiamo lavorare, come /tmp.

Tutte le modifiche che faremo all'immagine live verranno effettuate all'interno della cartella /tmp dentro chroot.

[chroot] # cp -r /usr/share/archiso/configs/releng/ /tmp
  • CD in questa cartella:
[chroot] cd /tmp/releng

adesso passa a Archiso_(Italiano)#Configurare_il_live_media.

Creare il live media di Arch Linux base. (configs/baseline)

Segui tutte le istruzione qui sopra; tuttavia, invece di copiare /usr/share/archiso/configs/releng nella cartella in cui lavorare, usa /usr/share/archiso/configs/baseline:

[chroot] # cp -r /usr/share/archiso/configs/baseline /tmp
  • Ora puoi costruire l'immagine, che originerà un file iso in /tmp/out (o in qualsiasi cartella da cui stai lavorando), che può essere scritta su CD o copiata con dd su USB.
[chroot] # ./build.sh -v
  • Esci da chroot.
[chroot] # exit

Flusso di lavoro generale (metodo manuale)

  • Configura un filesystem base
mkarchiso -p "base" create
  • Installa syslinux
mkarchiso -p "syslinux" create
  • Installa altri pacchetti (opzionale)
mkarchiso -p "pkg1 pkg2 pkg3 ... pkgN" create
  • A questo punto, personalizza quello che vuoi in root-image, quindi esci appena hai finito.
mkarchroot -n -r bash work/root-image
  • Configura l'immagine initramfs.
    • Copia gli hook necessari in root-image.
cp /lib/initcpio/hooks/archiso work/root-image/lib/initcpio/hooks
cp /lib/initcpio/install/archiso work/root-image/lib/initcpio/install
    • Crea un config per mkinitcpio work/root-image/etc/mkinitcpio-archiso.conf.
HOOKS="base udev archiso sata filesystems"
COMPRESSION="xz"
    • Crea una cartella col nome dell'architettura del tuo PC:
mkdir work/root-image/boot/i686
    • e genera l'immagine initramfs
mkarchroot -n -r "mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/i686/archiso.img" work/root-image
  • Sposta kernel/initramfs in boot/
mkdir -p work/iso/arch/boot/i686
mv work/root-image/boot/vmlinuz-linux work/iso/arch/boot/i686/vmlinuz
mv work/root-image/boot/i686/archiso.img work/iso/arch/boot/i686/archiso.img
  • Configura syslinux
    • Crea una cartella.
 mkdir -p work/iso/arch/boot/syslinux
    • Crea un file work/iso/arch/boot/syslinux/syslinux.cfg.
DEFAULT menu.c32
PROMPT 0
MENU TITLE Arch Linux
TIMEOUT 300

LABEL arch
MENU LABEL Arch Linux
LINUX /arch/boot/i686/vmlinuz
INITRD /arch/boot/i686/archiso.img
APPEND archisolabel=MY_ARCH

ONTIMEOUT arch
    • Copia menu.c32.
cp work/root-image/usr/lib/syslinux/menu.c32 work/iso/arch/boot/syslinux/
  • Configura isolinux (opzionale, necessario solo per le iso avviabili)
mkdir work/iso/isolinux
cp work/root-image/usr/lib/syslinux/isolinux.bin work/iso/isolinux/
cp work/root-image/usr/lib/syslinux/isohdpfx.bin work/iso/isolinux/
    • Crea work/iso/isolinux/isolinux.cfg
DEFAULT loadconfig

LABEL loadconfig
  CONFIG /arch/boot/syslinux/syslinux.cfg
  APPEND /arch/boot/syslinux/
  • Crea il file work/iso/arch/aitab.
# <img>         <mnt>                 <arch>   <sfs_comp>  <fs_type>  <fs_size>
root-image      /                     i686     xz          ext4       50%
  • Crea tutte le immagini del filesystem specificate in aitab (.fs .fs.sfs .sfs)
mkarchiso prepare
  • Genera un ISO 9660 con l'immagine d'avvio "El Torito" (opzionale)
mkarchiso -L "MY_ARCH" iso "my-arch.iso"

Creare una "pendrive" avviabile che ha più cose di "Arch Linux"

Installa il codice del settore di master boot.

dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr.bin of=/dev/pen

Configura un'etichetta del filesystem (per ext2/3/4)

e2label /dev/pen1 MY_ARCH

Configura un'etichetta del filesystem (per vfat)

dosfslabel /dev/pen1 MY_ARCH

Monta e copia la cartella "work/iso/arch"

mount /dev/pen1 /mnt/pen1
cp -r work/iso/arch /mnt/pen1

Installa extlinux e smontala (la partizione deve essere segnata come avviabile)

extlinux -i /mnt/pen1/arch/boot/syslinux
umount /mnt/pen1

Configurare il live media

Dentro l'ambiente chroot e dentro la cartella da cui lavori (/tmp se hai seguito questa guida), vedrai diverse cartelle chiamate root-image; dovrebbero interessare solo alcuni di questi file ed in particolare la cartella root-image; questa cartella farà da overlay ed è dove farai ogni personalizzazione.

Installare i pacchetti

Vorrai anche creare una lista di pacchetti che vuoi installare sul tuo live CD. Un file pieno di nomi di pacchetti, uno per riga, è il formato per fare questo. Questo è grandioso per live CD di particolare interesse, dovrai solo specificare i pacchetti che vuoi e scrivere l'immagine. Modifica il file packages.i686 o packages.x86_64 per creare un'immagine, rispettivamente, a 32bit o a 64bit.

Suggerimento: Puoi anche creare un custom local repository allo scopo di preparare pacchetti personalizzati o pacchetti da AUR/ABS. Aggiungi il tuo repository locale alla prima posizione (per la massima priorità) del file /etc/pacman.conf in chroot.


Aggiungere un utente

Ci sono due metodi per creare un utente: attraverso il comando useradd o anche sovrascrivendo /etc/shadow, /etc/passwd e /etc/group. Quest'ultimo metodo è mostrato di seguito.

Copia i tuoi /etc/shadow, /etc/passwd e /etc/group dal tuo sistema host a /etc/ all'interno del sistema chroot. Esempio

[host] $ cp /etc/{shadow,passwd,group} /home/nomeutente/archlive/tmp/root-image/etc/
Attenzione: Il file passwd contiene le password criptate. Si raccomanda, prima di copiare il file, di cambiare la password del proprio utente host in quella che dovrà avere l'utente live, copiare il file passwd, quindi ripristinare la propria password.

Popolare la cartella /home dell'utente

Crea la cartella skel all'interno di root-image, copia i file che desideri dalla tua cartella /home ed aggiungi i relativi comandi in rc.local, in questo modo:

  • Crea la cartella skel:
[chroot] cd root-image/etc/ && mkdir skel
  • Copia i tuoi file da /home/nomeutente:

esempio per .bashrc

[host] # cp ~/.bashrc /home/nomeutente/archlive/tmp/root-image/etc/skel/
Nota: Dovrai fare questo da root, non è possibile cambiare il proprietario dei file da copiare in quanto tutto all'interno della cartella root-image dovrà appartenere all'utente root
  • Dentro la cartella root-image/etc, crea il file rc.local e assicurati di renderlo eseguibile:
[chroot] # cd root-image/etc/
[chroot] # touch rc.local && chmod +x rc.local
  • Adesso modificalo aggiungendo:
# Create user directory for live session
if [ ! -d /home/nomeutente ]; then
    mkdir /home/nomeutente && chown nomeutente /home/nomeutente
fi
# Copy files over to home
su -c "cp -r /etc/skel/.[a-zA-Z0-9]* /home/nomeutente/" nomeutente

mkinitcpio.conf

Un initcpio è essenziale per creare un sistema che possa avviarsi da CD/DVD/USB, il file predefinito dovrebbe funzionare bene, quindi non dovresti aver bisogno di toccarlo.

Dovrai dunque creare un mkinitcpio.conf che contenga una lista dei tuoi hook:

$ vim mkinitcpio.conf

Un tipico set di hook per archiso dovrebbe somigliare a questo:

HOOKS="base udev memdisk archiso archiso_pxe_nbd archiso_loop_mnt pata scsi sata usb fw pcmcia filesystems usbinput"

Questa lista ti permetterà di avere un sistema che può essere avviato da un dispositivo CD/DVD o USB. Ovviamente auto-rilevamento dell'hardware ed altre cose della stessa natura non sono presenti. Solo il necessario a mettere in piedi il sistema e, a parte l'initcpio, il resto potrà comunque essere fatto a sistema avviato.

aitab

Il file aitab contiene informazioni relative alle immagini del filesystem che devono essere create da mkarchiso e montate dall'hook archiso in fase initramfs. Il file di default dovrebbe andar bene e non dovrebbe necessitare di modifiche. Consiste in alcuni campi che definiscono il comportamento delle immagini.

# <img>         <mnt>                 <arch>   <sfs_comp>  <fs_type>  <fs_size>
<img>
Nome dell'immagine senza estensione (.fs .fs.sfs .sfs).
<mnt>
Punto di mount.
<arch>
Architettura { i686 | x86_64 | any }.
<sfs_comp>
compressione SquashFS { gzip | lzo | xz }. Il valore speciale "none" disabilita SquashFS.
<fs_type>
Imposta il tipo di filesystem dell'immagine { ext4 | ext3 | ext2 | xfs }. Il valore speciale "none" disabilita l'uso di un filesystem. In questo caso tutti i file sono spostati direttamente al filesystem SquashFS.
<fs_size>
Un valore assoluto della grandezza in MiB dell'immagine del file system (esempio: 100, 1000, 4096, etc), un valore relativo dello spazio libero nel file system [in percentuale] {1%..99%} (example 50%, 10%, 7%).
Nota: Alcune combinazioni non sono valide. Ad esempio sia sfs_comp che fs_type sono impostate a none

Boot Loader

Il file presente dovrebbe adattarsi alle tue esigenze.

DEFAULT menu.c32
PROMPT 0
MENU TITLE Arch Linux
TIMEOUT 300

LABEL arch
MENU LABEL Arch Linux
LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz
INITRD /%INSTALL_DIR%/boot/%ARCH%/archiso.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%

ONTIMEOUT arch

Data la natura modulare di isolinux, puoi usare diversi addon dal momento che tutti i file *.c32 sono copiati e disponibili. Dai uno sguardo al sito ufficiale di syslinux e al git repo di archiso. Usando i suddetti addon è possibile rendere i menu visivamente gradevoli e complessi. Vedi qui.

Finire la root-image

Alcuni consigli che non saranno affrontati in quest'articolo perchè ci sono già altri articoli su questa wiki che lo fanno, ma sentiti pure libero di aggiungerne altri qui.

  • Configurare inittab per far partire X all'avvio
  • Configurare il fiel hosts
  • Configurare rc.conf (non sono richiesti moduli particolari)
  • Configurare sudoers
  • Configurare rc.local
  • Mettere artwork aggiuntivi sul media
  • Mettere altri file binari in opt/

Vedi anche