MultiCd per creare CD e DVD Multiboot in Linux

Riprendo un precedente post Creare un DVD, un CD o una chiave USB Multiboot  relativo a MultiCD un interessante script per  generare DVD e CD con una molteplicità di distribuzioni e utility da avviare direttamente grazie ad un comodo menu. Il vantaggio offerto da questo script non è da poco considerato che :  esistono molte distribuzioni linux  ottimizzate per compiti specifici o specializzate in ambiti particolari, vengono rilasciate con frequenza aggiornamenti di una distribuzione,  esistono diversi utili  tools avviabili da cd vedi antivirus, boot manager, etc.

multicd menu

multicd menu

Lo script Multicd  ( http://multicd.tuxfamily.org/ ), licenza MIT, come si legge nei sito dedicato ha i seguenti vantaggi:

  • Non è necessario avere un CD o DVD per ogni singola distribuzione ma spazio permettendo si possono appunto avere molte iso avviabili in un unico supporto 
  • Se le ISO sono già disponibili non è necessario riscaricarle. Lo script infatti è grado di scaricare
  • Al rilascio di una nuova versione di una distribuzione è sufficiente scaricare la nuova ISO e rilanciare lo scrpt per generare una nuova immagine muultiboot.
  • Aggiungo che grazie:
    • all’opzione -t o con qemu-kvm è possibile testate il multicd e tutte le iso installate prima del burning
    • a dd è posossibile trasferire la iso multiboot in una penna usb

Svantaggi:

  • Lo script opera con tante distribuzioni e utilities ma non con tutte. L’elenco è disponibile al seguente indirizzo MultiCD: Supported Distros.

Di seguito vengono presentati due possibili modi di utilizzo di multicd uno più semplice e uno po’ più articolato definito per differenziare “avanzato” ( nell’utilizzo avanzato indicato anche l’inserimento di utili tools live che può far comdo avere in un dvd in caso di emergenza) :

  • utilizzo base
  • utilizzo “avanzato”

L’approccio personlizzato fa ricorso intensivo a links simbolici per  contenere l’occupazione di spazio su disco, per consententire di inserire più versioni della stessa distro su DVD e per modificare il menu di avvio del multicd-dvd

Uso base di MultiCD

Avvertenza  qualora si intendano realizzare multiboot DVD consdierare che potrebbero anche occupare temporaneamente i 15GB di spazio disco.
Nel utilizzo di multicd in modo base creare una cartella ad hoc. Scaricare  e copiare lo script multicd nella cartella. Quindi copiare o generare un link simbolico alle distro e ai tools e lanciare lo script multicd.sh  Scaricare l‘ultima versione di sviluppo di multicd con git  Come installare Git client per Ubuntu

mkdir multicd
cd multicd 
git clone git://git.tuxfamily.org/gitroot/multicd/multicd.git

Copiare nella directory le iso che si intendono inserire nel CD/DVD multiboot. I files ISO devono talvolta essere rinominati secondo le indicazioni sul sito di multicd supported boot images.  Ad esempio per    Finnix → finnix.iso  viene indicato che il nome sicuramente funzionante è finnix.iso.

Ad esempio è possible copiare nella cartella multicd:

  •  systemrescuedcd-x86-3.6.0.iso
  • ubuntu-12.10-desktop-i386.iso

invece copiamo e rinomiamo

  • finnix-108.iso  in -> finnix.iso
  • super_grub2_disk_hybrid_1.98s.iso  1in -> super_grub2_disk_hybrid_1.98s1.img

Quindi rendere eseguibile lo script multicd.sh:

chmod +x multicd*.sh
./multicd.sh
o
sudo ./multicd.sh

Al primo avvio verrà scaricato syslinux.tar.gz

Lo script può essere eseguito più volte.
La iso multiboot.iso e tutte le distro contenute possono essere testate con

kvm -m 512 -boot d multicd.iso

E’ possibile anche avviare qemu automicamente utilizzano l’opzione -t cioè utilizzando

sudo ./multicd.sh

Utilizzo personalizzato di Multicd

Considerato che nella realizzazione di multiboot DVD si potrebbero raggiungere temporaneamente i 15GB creare una cartella in un partizione, anche separata, sufficientemente capiente. Ad es:

mount -t auto /dev/hda10 /media/dati
mkdir /media/dati/multicd
cd /media/dati/multicd

Scaricare l‘ultima versione di multicd con git  Come installare Git client per Ubuntu | maurizio siagri

git clone git://git.tuxfamily.org/gitroot/multicd/multicd.git

Installare dialog per  personalizzare il menu di avvio del multicd, colori, titoli…

  sudo apt-get install dialog

dialog consente anche di ridefinire i menu di avvio di alcune ditribuzioni quali ubuntu e mint.

Per inserire più versioni diverse di distribuzioni quali ubuntu e mint è preferibile che il nome dei files iso sia del tipo: xxxxx.ubuntu.iso. Tuttavia per evitare di rinominare i file .iso scaricati e risparmiare spazio Per le distro quali ubuntu è preferibile piuttosto che copiare le iso nella directory di multicd utilizzare dei symlinks.  Di seguito la preparazione di un dvd con diverse distro utilizzando esclusivamente symlinks.

ln -s ../../ISO/iso-tools/super_grub_disk_0.9799.iso  super_grub_disk_0.9799.img
ln -s ../../ISO/iso-tools/super_grub2_disk_hybrid_2.00s1-beta5.iso super_grub2_disk_hybrid_2.00s1-beta5.img
ln -s ../../ISO/iso-tools/super_grub_disk_hybrid-1.98s1.iso super_grub_disk_hybrid-1.98s1.img
ln -s ../../ISO/iso-tools/gparted-live-0.16.1-1-i486.iso gparted-live-0.16.1-1-i486.iso
ln -s ../../ISO/iso-tools/grub4dos-0.4.4/grub.exe grub.img
ln -s ../../ISO/iso-tools/systemrescuecd-x86-3.6.0.iso systemrescuecd-x86-3.6.0.iso
ln -s ../../ISO/slax/slax-6.1.2.iso slax-6.1.2.iso 
ln -s ../../ISO/iso-tools/finnix-108.iso finnix.iso
ln -s ../../ISO/suse/openSUSE-12.2-GNOME-LiveCD-i686.iso openSUSE-12.2-GNOME-LiveCD-i686.iso
ln -s ../../ISO/Ubuntu/ubuntu-12.04.1-server-amd64.iso  ubuntu-12.04.1-server-amd64.iso 
ln -s ../../ISO/Ubuntu/xubuntu-12.04.1-desktop-i386.iso xubuntu-12.04.1-desktop-i386.iso
ln -s ../../ISO/Ubuntu/raring-desktop-amd64.iso  raring-desktop-amd64.ubuntu.iso 
ln -s ../../ISO/Ubuntu/lubuntu-13.04-desktop-amd64+mac.iso  lubuntu-13.04-desktop-amd64+mac.ubuntu.iso

avviare come root e con l’opzione -i per modificare il menu di avvio

sudo ./multicd -i

La iso multiboot.iso e tutte le distro contenute possono essere testate avviando qemu-kvm  oppure utilizzando l’opzione -t di multicd oppure avviando kvm  con il comando:

kvm -m 512 -boot d multicd.iso

Nella fase di test è possibile via menu avviare le iso incluse nel multicd.iso. Di seguito le schermate di puppy 5.5 precise  xubuntu avviate direttamente dal menu.

multicd avvio puppy

multicd avvio puppy

puppy 5.5 via multicd

puppy 5.5 via multicd

xubuntu via multicd

Il file iso può essere masterizzato con brasero o Xfburn etc..

Creare un penna usb multiboot

Per creare una chiavetta USB multiboot contentente la iso prodotta con multicd in Linux è possibile varie soluzione una delle più semplici è utilzzare il comando dd :

dd if=multicd.iso of=/dev/sdh oflag=direct

per ulteriori informazioni su dd fare riferimetno al seguente post Clonare una penna usb – Salvare una iso su usb con dd.  E’ possibile usare anche programmi come UNetbootin.

Risorse:

Programmi per creare una chiavetta USBcon sistema operativo live LinuxLIve USb Creator, Unetbootin

Alternative windows xbootsardu, yumi.

ISO Distro e ISO Tools interessanti:

Nota:

Se compare l’errore:

cp: cannot stat ‘/tmp/syslinux-*/com32/modules/chain.c32’: No such file or directory

Di solito avviene la prima volta, risolvere semplicemnte riavviando lo script.

 ./multicd.sh

Di seguito messaggi a terminale nel caso specifico :

~/multicd/multicd$ sudo ./multicd.sh
[sudo] password for maurizio: 
Made a link named sysrcd.iso pointing to systemrescuecd-x86-3.6.0.iso (version 3.6.0)
multicd.sh 20121217
Extracting ISO images with mount; will build multicd.iso; UID 0.

SystemRescueCd
super_grub_disk_0.9799
Memtest86+

Continuing in 2 seconds - press Ctrl+C to cancel
Copying files for each plugin...
Copying SystemRescueCd...
Copying super_grub_disk_0.9799... Saved as 0.img.
Downloading SYSLINUX...
--2013-05-23 00:21:37--  https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.06.tar.gz
Resolving www.kernel.org (www.kernel.org)... 198.145.20.140, 149.20.4.69
Connecting to www.kernel.org (www.kernel.org)|198.145.20.140|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6651601 (6,3M) [application/x-gzip]
Saving to: ‘syslinux.tar.gz’

100%[=====================================================================>] 6.651.601    651KB/s   in 11s    

2013-05-23 00:21:49 (594 KB/s) - ‘syslinux.tar.gz’ saved [6651601/6651601]

Unpacking and copying files...
cp: cannot stat ‘/tmp/syslinux-*/com32/modules/chain.c32’: No such file or directory

RIAVVIARE 
:~/multicd/multicd$ sudo ./multicd.sh
removed ‘sysrcd.iso’
removed ‘sysrcd.version’
Made a link named sysrcd.iso pointing to systemrescuecd-x86-3.6.0.iso (version 3.6.0)
multicd.sh 20121217
Extracting ISO images with mount; will build multicd.iso; UID 0.

SystemRescueCd
super_grub_disk_0.9799
Memtest86+

Continuing in 2 seconds - press Ctrl+C to cancel
Copying files for each plugin...
Copying SystemRescueCd...
Copying super_grub_disk_0.9799... Saved as 0.img.
Unpacking and copying SYSLINUX files...
Downloading memtest86+ 4.20 from memtest.org...
--2013-05-23 00:27:00--  http://memtest.org/download/4.20/memtest86+-4.20.bin.gz
Resolving memtest.org (memtest.org)... 217.70.182.162
Connecting to memtest.org (memtest.org)|217.70.182.162|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 64960 (63K) [application/x-gzip]
Saving to: ‘STDOUT’

100%[=====================================================================>] 64.960       178KB/s   in 0,4s   

2013-05-23 00:27:01 (178 KB/s) - written to stdout [64960/64960]

Writing isolinux.cfg...
Building CD image...
Warning: Creating ISO-9660:1999 (version 2) filesystem.
Warning: ISO-9660 filenames longer than 31 may cause buffer overflows in the OS.
Size of boot image is 4 sectors -> No emulation
  2.41% done, estimate finish Thu May 23 00:27:02 2013
  4.83% done, estimate finish Thu May 23 00:27:02 2013
  7.25% done, estimate finish Thu May 23 00:27:02 2013
  9.66% done, estimate finish Thu May 23 00:27:02 2013
 12.07% done, estimate finish Thu May 23 00:27:02 2013
 14.48% done, estimate finish Thu May 23 00:27:02 2013
 16.90% done, estimate finish Thu May 23 00:27:02 2013
 19.31% done, estimate finish Thu May 23 00:27:02 2013
 21.73% done, estimate finish Thu May 23 00:27:02 2013
 24.14% done, estimate finish Thu May 23 00:27:02 2013
 26.55% done, estimate finish Thu May 23 00:27:02 2013
 28.96% done, estimate finish Thu May 23 00:27:02 2013
 31.38% done, estimate finish Thu May 23 00:27:02 2013
 33.79% done, estimate finish Thu May 23 00:27:04 2013
 36.21% done, estimate finish Thu May 23 00:27:04 2013
 38.62% done, estimate finish Thu May 23 00:27:04 2013
 41.03% done, estimate finish Thu May 23 00:27:04 2013
 43.44% done, estimate finish Thu May 23 00:27:04 2013
 45.86% done, estimate finish Thu May 23 00:27:04 2013
 48.27% done, estimate finish Thu May 23 00:27:04 2013
 50.69% done, estimate finish Thu May 23 00:27:03 2013
 53.10% done, estimate finish Thu May 23 00:27:03 2013
 55.51% done, estimate finish Thu May 23 00:27:03 2013
 57.92% done, estimate finish Thu May 23 00:27:03 2013
 60.34% done, estimate finish Thu May 23 00:27:03 2013
 62.75% done, estimate finish Thu May 23 00:27:05 2013
 65.17% done, estimate finish Thu May 23 00:27:05 2013
 67.58% done, estimate finish Thu May 23 00:27:04 2013
 69.99% done, estimate finish Thu May 23 00:27:04 2013
 72.40% done, estimate finish Thu May 23 00:27:07 2013
 74.82% done, estimate finish Thu May 23 00:27:08 2013
 77.23% done, estimate finish Thu May 23 00:27:08 2013
 79.65% done, estimate finish Thu May 23 00:27:08 2013
 82.06% done, estimate finish Thu May 23 00:27:09 2013
 84.48% done, estimate finish Thu May 23 00:27:10 2013
 86.88% done, estimate finish Thu May 23 00:27:10 2013
 89.30% done, estimate finish Thu May 23 00:27:09 2013
 91.71% done, estimate finish Thu May 23 00:27:09 2013
 94.13% done, estimate finish Thu May 23 00:27:09 2013
 96.54% done, estimate finish Thu May 23 00:27:10 2013
 98.95% done, estimate finish Thu May 23 00:27:10 2013
Total translation table size: 2048
Total rockridge attributes bytes: 4073
Total directory bytes: 12288
Path table size(bytes): 84
Max brk space used 1d000
207174 extents written (404 MB)
Running isohybrid...
Cleaning current directory...
removed ‘sysrcd.iso’
removed ‘sysrcd.version’

Codec Audio Video per Ubuntu Linux

Nei sistemi Linux l’installazione di default consente di riprodurre un numero limitato di formati audio video: i formati “free”. Per riprodurre ad esempio i files mp3, wma o dvx è necessario installare i codec specifici. Per installare i codec principali in Ubuntu è possibile installare il pacchetto ubuntu-restricted-extras . Nellla pagina la composizione del pacchetto se si desidera manualmente installare solo una parte delle librerie::

sudo apt-get install ubuntu-restricted-extras

Confermare la licenza per scaricare i font Microsoft che appare durante lì’installazione.

Altri codec sempre per ragioni di lincenza sono presenti nel repository Medibuntu, in basso nella pagina la composizione in pacchetti. Potrà in particolare risultare utile l’installazione dei codec per la riproduzione di DVD Video con Ubuntu. Da terminale:

Ubuntu 32bit

sudo apt-get install w32codecs libdvdcss2

Ubuntu 64bit

sudo apt-get install w64codecs libdvdcss2

I repository Medibuntu in Ubuntu si possono attivare da terminale con :

sudo -E wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list

sudo apt-get --quiet update
sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring
sudo apt-get update

Composizione del pacchetto ubuntu-restricted-extras

Per installare solo ciò che si desidera evitare l’installazione di ubuntu-restricted-extras e procedere manualmente di seguito le singole librerie o pacchetti. In grassetto i codec più utilizzati.

abextract = estrae i file .cab Microsoft
flashplugin-nonfree = flash player per il browser
freepats = per la sintesi dei file MIDI
gsfonts-X11 = caratteri ghostscript per X11
gstreamerX.XX-ffmpeg/pitfdll/plugins-bad/plugins-bad-multiverse/plugins-ugly/plugins-ugly-multiverse = per la decodifica di vari formati video (MicrosoftOK)
java-common = per utilizzare la tecnologia java
liba52-X.X.X = per decodificare ATSC e A/52
libavcodec51 = codec per ffmpeg che supporta vari formati
libavformat52 = libreria per vari formati per ffmpeg
libavutil49 = necessari per le utility di ffmpeg
libcdaudio1 = per il controllo degli audio CD
libdc1394-22 = per le camere digitali basate sull’ IEEE 1394
libdvdnav4 = per navigare nei menù DVD
libdvdread3 = per la lettura dei DVD
libfaac0 = encoder audio AAC
libfaad0 = decoder audio AAC
libfftw3-3 = libreria per il calcolo dell’ FFT
libfreebob0 = codec per hardware audio BeBoB
lbgmyth0 = per accedere a MythTV
libgsm1 = libreria per la comprensione del linguaggio GSM
libid3tag0 = per leggere etichette ID£ del progetto MAG
libiptcdata0 = libreria per manipolare IPTC
libjack0 = per la connessione audio JACK
libmad0 = per la decodifica audio MPEG
libmjpegtools0c2a = per l’editing del formato MJPEG
libmms0 = per il protocollo mms
libmp3lame0 = encoder mp3
libmpcdec3 = decoder mp3
libmpeg2-4 = decoder MPEG1 MPEG2
libmysqlclient15off = per il database MySQL
libneon27-gnutls = per i client HTTP e WebDAV
libofa0 = per l’impronta acustica
libopenspc0 = per i file SPC
libpostproc51 = per il postprocesso dei video con ffmpeg
libquicktime1 = per i file quicktime
libsidplay = emulatore per C64
libsoundtouch1c2 = per gestire il tempo su file audio
libswscale0 = per la scaling video in ffmpeg
libwildmidi0 = per player MIDI
libx264-57 = per formati MPEG-4 AVC
libxvidcore4 = MPEG4 codec
msttcorefonts = fonts Microsoft TrueType
mysql-common = common file per MySQL
odbcinst1debian1 = per accedere ai file ini odbc
sun-java6-bin/ire/plugin = per la piattaforma java
ubuntu-restricted-extras = il metapacchetto che racchiude il tutto
unixodbc = librerie per strumenti ODBC
unrar = per estrarre gli archivi .rar
xutils-dev = programmi per lo sviluppo dell’ X-Windows-system

gstreamer plugin

  • gstreamer0.10-plugins-really-bad ( non disponibile in debian ) per il formato AAC
  • gstreamer0.10-lame ( non disponibile in debian ) per il formato mp3
  • gstreamer0.10-plugins-ugly per il formato mp2

non-free-codecs ubuntu

Non free-codecs è un pacchetto che si propone di rendere disponibili in un unico blocco tutti i pacchetti necessari per la riproduzione dei formati proprietari ed è ospitato nel repository Medibuntu . Si installa con:

sudo apt-get install non-free-codecs

w32codecs: win32 binary codecs

Il pacchetto contiene i video codecs per i più popolari formati non suttorati nativamente da mplayer.

 ATI VCR-2 video codec.
 Cinepak video codec
 DivX  video codec, ver. 3.11
 DivX  video codec, ver. 4.x
 Indeo Video 3.2/4.1/5.0/4.1 quick/5.0 quick codecs.
 Intel 263 video codec.
 Microsoft MPEG-4 video codec, beta version 3.0.0.2700
 Morgan Multimedia Motion JPEG video codec.
 QuickTime
 RealAudio
 RealVideo 8
 RealVideo 9
 Windows Media Video 9

pacchetti Medibuntu

(Multimedia, Entertainment & Distractions In Ubuntu)

aacgain
aacplusenc
acroread-fonts
alsa-firmware
app-install-data-medibuntu
apport-hooks-medibuntu
hot-babe
ices
libavcodec-extra-53
libavdevice-extra-53
libav-extra-dbg
libavfilter-extra-2
libavformat-extra-53
libavutil-extra-51
libdvdcss2
libdvdcss-dev
libpostproc-extra-52
libswscale-extra-2
medibuntu-keyring
mencoder
mplayer-dbg
mplayer-doc
mplayer-gui
mplayer
non-free-codecs
rmconverter
w32codecs 
w64codecs

Per disattivare i componenti non-free

sudo sed -e 's/ non-free//' -i /etc/apt/sources.list.d/medibuntu.list && sudo apt-get update

Risorse: