Como eu faço um Ubuntu ISO customizado para instalações totalmente offline? [duplicado]

3

Estou na Índia e não temos Internet confiável em todos os lugares. Eu gostaria de construir um instalador do Ubuntu ISO com os seguintes recursos:

  • Todos os drivers proprietários devem estar disponíveis off-line
  • Pelo menos um pacote de idiomas completo (digamos, inglês / EUA) deve estar disponível off-line
  • Certos pacotes extras
  • E, por fim, coisas como o flashinstaller ou o Chrome, que fazem o download de dados da Web durante a instalação, também devem funcionar.

Como faço para construir algo assim?  -

    
por curiousboy 27.08.2014 / 14:28

1 resposta

8

Teste isso: Personalize o CD do Desktop do Ubuntu Instale as ferramentas necessárias

sudo su

apt-get install squashfs-tools genisoimage

Faça o download de um CD de mesa oficial no link Copie-o em um diretório vazio

mkdir ~/livecdtmp

mv ubuntu-14.04.1-desktop-i386.iso ~/livecdtmp

cd ~/livecdtmp

Monte o Desktop .iso

sudo su

mkdir mnt

mount -o loop ubuntu-14.04.1-desktop-i386.iso mnt

Extraia o conteúdo do .iso no diretório 'extract-cd'

sudo su

mkdir extract-cd

rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

Extraia o sistema de área de trabalho & amp; o sistema de arquivos SquashFS

sudo su

unsquashfs mnt/casper/filesystem.squashfs

mv squashfs-root edit

Prepare e chroot

sudo su

cp /etc/resolv.conf edit/etc/

cp /etc/hosts edit/etc/

mount --bind /dev/ edit/dev

chroot edit

mount -t proc none /proc

mount -t sysfs none /sys

mount -t devpts none /dev/pts

export HOME=/root

export LC_ALL=C

Personalizações Antes de instalar ou atualizar pacotes, você precisa executar

dbus-uuidgen > /var/lib/dbus/machine-id

dpkg-divert --local --rename --add /sbin/initctl

ln -s /bin/true /sbin/initctl

Remova, instale & amp; pacotes de atualização.

Se você modificou o kernel, os scripts init ou adicionou novos módulos do kernel, você precisa reconstruir o arquivo initrd.lz e substituí-lo no diretório casper.

sudo su

chroot edit mkinitramfs -o /initrd.gz 3.13.0-25-generic

(substitua a versão do kernel pela que o CD inicializará - isso pode ser encontrado em edit / lib / modules)

Saia do chroot jail e mova este arquivo para extract-cd / casper:

exit

mv edit/initrd.lz extract-cd/casper/

Remova todos os arquivos temporários que não são mais necessários.

apt-get clean
Or
rm -rf /tmp/* ~/.bash_history

Se você instalou o software, não se esqueça de executar

rm /var/lib/dbus/machine-id
&
rm /sbin/initctl

dpkg-divert --rename --remove /sbin/initctl

Desmonte sistemas de arquivos especiais e saia do chroot

umount /proc || umount -lf /proc

umount /sys

umount /dev/pts

exit

sudo su 

umount edit/dev

Produzindo a imagem do CD e comprime o sistema de arquivos

sudo su

chmod +w extract-cd/casper/filesystem.manifest

chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest

cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop

sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop

sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop

rm extract-cd/casper/filesystem.squashfs

mksquashfs edit extract-cd/casper/filesystem.squashfs -comp xz -e edit/boot

printf $(sudo du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size

nano extract-cd/README.diskdefines

cd extract-cd

rm md5sum.txt

find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt

mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-14.04.1-desktop-i386-custom.iso .

Gravando a imagem no CD

cdrecord dev=/dev/cdrom ubuntu-14.04.1-desktop-i386-custom.iso
    
por kyodake 27.08.2014 / 22:06