Eu quero fazer um remix do Ubuntu que pode ser executado ao vivo, mas também tem a opção de instalar. Estou usando os tutoriais para Personalização do Live CD do Scratch e Personalização do Live CD . Eu também tive algum sucesso com o modo ubuntu
dos scripts live-build
(4.0.5-1), mas não consegui que ele tivesse uma opção de instalação. Eu quero começar do zero, então eu não quero usar uck
. Estou com problemas ao tentar instalar a distro. A opção ao vivo funciona bem. Primeiramente, estou fazendo tudo isso no Xubunutu 14.04.
Vou percorrer os meus passos desde o início:
ARCH=i386
RELEASE=trusty
# make chroot environment
mkdir -p work/chroot && cd work
sudo debootstrap --arch=$ARCH $RELEASE chroot
# Copy Files For Internet
sudo cp /etc/hosts chroot/etc/hosts
sudo cp /etc/resolv.conf chroot/etc/resolv.conf
sudo cp /etc/apt/sources.list chroot/etc/apt/sources.list
# Copy A text file with a list of packages (packages.txt) to the chroot environment
sudo mkdir -p chroot/usr/share/initialinstall
grep -vE '^\s*(#|$)' packages.txt >> packages-list.txt
sudo cp packages-list.txt chroot/usr/share/initialinstall/packages
rm packages-list.txt
sudo mount --bind /dev chroot/dev
Agora eu tenho uma configuração do ambiente chroot com sucesso. Agora eu posso entrar em contato com o meio ambiente agora.
sudo chroot ./chroot
mount none -t proc /proc
mount none -t sysfs /sys
mount none -t devpts /dev/pts
HOME=/root
export LC_ALL=C
apt-get update
apt-get install --yes dbus
dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
apt-get install --yes casper lupin-casper
apt-get install --yes discover laptop-detect os-prober
apt-get install --yes linux-generic
apt-get install --yes ubiquity-frontend-gtk
Ao instalar esses pacotes anteriores, uma configuração grub-pc
é exibida. Eu não acho que isso afetará meu sistema host, já que estou em um ambiente chroot. Então, clico em [ok] e instalo em dev/sda
Então, enquanto ainda estou no ambiente chroot, eu instalo todos os pacotes que estão no arquivo de texto que eu mudei para o ambiente chroot de antes.
# Install new packages from the list from before
apt-get install $(grep -vE "^\s*#" /usr/share/initialinstall/packages | tr "\n" " ")
# Prepare to exit chroot environment
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
apt-get clean
rm -rf /tmp/*
rm /etc/resolv.conf
umount -lf /proc
umount -lf /sys
umount -lf /dev/pts
exit
sudo umount /path/to/chroot/dev
Eu já tenho syslinux squashfs-tools genisoimage
, então agora preciso configurar o diretório de imagens do cd.
mkdir -p image/{casper,isolinux,install}
cp chroot/boot/vmlinuz-* image/casper/vmlinuz
cp chroot/boot/initrd.img-* image/casper/initrd.lz
cp /usr/lib/syslinux/isolinux.bin image/isolinux/
cp /boot/memtest86+.bin image/install/memtest
cp /usr/lib/syslinux/menu.c32 image/isolinux/
Então eu fiz isolinux.cfg
e coloquei em image/isolinux/
. Continha o seguinte:
UI menu.c32
PROMPT 1
MENU TITLE Boot Menu
DEFAULT live
LABEL live
menu label ^Start or install Ubuntu Remix
kernel /casper/vmlinuz
append file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash --
LABEL live-install
menu label ^Install Uubuntu Remix
kernel /casper/vmlinuz
append file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity initrd=/casper/initrd.lz quiet splash ---
LABEL check
menu label ^Check CD for defects
kernel /casper/vmlinuz
append boot=casper integrity-check initrd=/casper/initrd.lz quiet splash --
LABEL memtest
menu label ^Memory test
kernel /install/memtest
append -
LABEL hd
menu label ^Boot from first hard disk
localboot 0x80
append -
TIMEOUT 50
Então eu criei o manifesto
sudo chroot chroot dpkg-query -W --showformat='${Package} ${Version}\n' | sudo tee image/casper/filesystem.manifest
sudo cp -v image/casper/filesystem.manifest image/casper/filesystem.manifest-desktop
REMOVE='ubiquity ubiquity-frontend-gtk ubiquity-frontend-kde casper lupin-casper live-initramfs user-setup discover1 xresprobe os-prober libdebian-installer4'
for i in $REMOVE
do
sudo sed -i "/${i}/d" image/casper/filesystem.manifest-desktop
done
Depois disso, comprima o chroot
sudo mksquashfs chroot image/casper/filesystem.squashfs
printf $(sudo du -sx --block-size=1 chroot | cut -f1) > image/casper/filesystem.size
Crie diskdefines
touch image/README.diskdefines
Contém:
#define DISKNAME Ubuntu Remix
#define TYPE binary
#define TYPEbinary 1
#define ARCH i386
#define ARCHi386 1
#define DISKNUM 1
#define DISKNUM1 1
#define TOTALNUM 0
#define TOTALNUM0 1
Reconheça como o Ubuntu Remix
touch image/ubuntu
mkdir image/.disk
cd image/.disk
touch base_installable
echo "full_cd/single" > cd_type
echo "Ubuntu Remix 14.04" > info # Update version number to match your OS version
echo "http//your-release-notes-url.com" > release_notes_url
cd ../..
Calcular MD5
sudo -s
(cd image && find . -type f -print0 | xargs -0 md5sum | grep -v "\./md5sum.txt" > md5sum.txt)
exit
Criar imagem ISO
IMAGE_NAME=UBUNTUREMIX
cd image
sudo mkisofs -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-remix.iso .
cd ..
Agora eu tento testá-lo com o VirtualBox. Eu criei uma máquina virtual com as seguintes configurações:
Quandoeucomeço,eusousaudadocomomenuqueeuqueroepossoexperimentaraopçãoaovivo,quefuncionamuitobem.Eufechoforadamáquinaetentoinstalá-lonodiscorígidovirtualeoinstaladordeonipresençafuncionamuitobematéofinal,eurecebooseguinteerro:AnattempttoconfigureapttoinstalladditionalpackagesfromtheCDfailed
Elemeinicializanaversãoaovivoparaqueeupossatentarcorrigiroproblema.Eutenteiusarolsblkparaverseelevêumdispositivodecdromeparecevê-lo:
Se alguém tiver alguma sugestão ou sugestão, eu realmente aprecio isso. Este é o meu último problema a ser superado com este projeto e estou realmente perplexo. Um bug debian de 2012 teve um trabalho para excluir /usr/lib/ubiquity/apt-setup/generators/40cdrom
. Eu verifiquei que minha distro tem o arquivo e eu descompactei um iso do Xubuntu e ele tinha esse arquivo também. Então, eu não sei se apenas excluir é o curso correto de ação ou se minhas configurações da Virtual Box estão erradas.
Como um aparte aqui estão os pacotes que estão no arquivo de texto que eu instalo:
xorg
xinit
xterm
xserver-xorg
xserver-xorg-core
xfonts-base
x11-xserver-utils
x11-apps
x11-session-utils
x11-utils
xinput
openbox
obconf
obmenu
tint2
volti
clipit
gmrun
lightdm
lightdm-gtk-greeter
light-locker
light-locker-settings
laptop-detect
spacefm
synaptic
libnotify4
dkms
gvfs
gvfs-backends
policykit-1
unzip
zip
p7zip
unrar-free
Também posso estar perdendo um pacote importante.