Czy mogę zbudować system Ubuntu ISO z manifestu?

Odpowiedzi:

21

Plik system.manifest jest generowany za pomocą polecenia:

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

Składnia jest więc następująca package_name version:

 xserver-xorg-video-nouveau  1:0.0.16+git20110411+8378443-1

Format dpkg --get-selectionsjest nieco inny,package_name install

Przykład

xserver-xorg-video-nouveau  install 

Możesz więc użyć pliku, prawdopodobnie na więcej niż jeden sposób,

apt-get install -y $(awk '{print $1}' filesystem.manifest)

Szczerze mówiąc, po zrobieniu kilku niestandardowych ISO przez lata, istnieje krzywa uczenia się, jak to działa. Gdy zrozumiesz kilka rzeczy, nie jest to zbyt trudne, wystarczy, że wymagana wiedza jest umiarkowanie duża i nie ma jednego, aktualnego źródła informacji.

Używasz 2 katalogów kompilacji

~/custom - build directory for the iso
~/rootfs - build directory for the root file system.

niestandardowy - ten katalog zawiera wszystkie pliki, które przejdą do końcowej wersji ISO. Zawiera główny system plików, jądro, initramfs i isolinux.

rootfs - ten katalog zawiera system plików CD na żywo. Kompresujesz ten katalog (używając mksquashfs) i umieszczasz go na CD. Możesz zbudować to za pomocą debootstrap (live D od zera) lub wypakować system plików z ubuntu-desktop.iso (dostosuj live CD). Szczegółowe informacje znajdują się poniżej w linkach wiki ubuntu.

Kluczowe punkty

1) Zrozum mksquashfs - używasz mksquashfs do kompresji głównego systemu plikówcasper/filesystem.squashfs

sudo mksquashfs /home/bodhi/rootfs custom/casper/filesystem.squashfs

2) Zrozumieć izolinux - powoduje to uruchomienie systemu ISO, a także menu CD (rozruchu). Zobacz Arch Linux Wiki syslinux .

Możesz użyć grub2 jako alternatywy dla isolinux, ale wtedy musisz zrozumieć, jak działa grub2;). Większość płyt CD na żywo nadal korzysta z izolinux.

3) Jak zrobić initramfs. Initramfs to drugi system plików, używany do rozruchu. Często, gdy masz problem (niestandardowy obraz rozruchowy nie działa, moduły jądra nie ładują się) i nie możesz zrozumieć, dlaczego patrzysz na główny system plików, odpowiedź jest bardzo prawdopodobna w initramfs.

#extract to a working_directory , I use ~/initrd
cd ~/initrd
lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames

# Make your edits / adjustments
# Package
cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../custom.initrd.lz

Następnie przenieś swój nowy plik initrd.lz do niestandardowego katalogu kompilacji, custom/casper/initrd.lz

4) Casper. Casper, a skrypty Casper znajdują się w 3 lokalizacjach, a wszystkie 3 mogą odgrywać pewną rolę. Wszystkie są skryptami bashowymi i w pewnym momencie prawie na pewno będziesz chciał je przejrzeć.

Gospodarz - /usr/share/initramfs-tools/scripts/casper

B. główny system plików - custom / usr / share / initramfs-tools / scripts / casper

C. w initramfs - patrz katalog / scripts.

Zobacz Casper Man Ubuntu

5) Dostosowujesz interfejs użytkownika / aplikacje /usr/share, /usr/share/gnome*na przykład, dokładne lokalizacje różnią się w zależności od wersji, /usr/share/gnome-background-properties/ubuntu-wallpapers.xmljest to klasyczny i dość standardowy we wszystkich wersjach.

6) Jeśli nie możesz dokonać dostosowań /usr/share/, użyj /etc/skel, oto /etc/skel/.bashrcklasyczny przykład, że plik jest kopiowany do ~ / .bashrc. Możesz umieścić tam różne pliki confg, dla firefoxa lub gnome'a, ale nie, ale / usr / share jest lepszy, jeśli w ogóle jest to możliwe (zależy od ustawienia).

7) mkisofs - używasz mkisofs do konwersji katalogu kompilacji na ISO

cd ~/custom
sudo 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-12.04-custom.iso .

8) Trwałość. Trwałości można używać z wieloma płytami CD na żywo, w tym z płytą CD z Ubuntu i niestandardową płytą CD, jest to realizowane przez casper.

A. root - casper zamontuje partycję lub plik oznaczony jako casper-rwnakładka krowy na /. Jeśli następnie zainstalujesz pakiet lub zmodyfikujesz plik konfiguracyjny, zmiany zostaną zachowane po ponownym uruchomieniu.

Używaj tego oszczędnie. Jeśli zaktualizujesz wszystkie pakiety, zajmie to dużo miejsca. Uważam również, że ta metoda jest czasami błędna.

B. Strona główna - Casper Sill montuje partycję lub plik oznaczony AAS home-rwjako krowa nakładka na / Home.

Wolę to, ponieważ moje zakładki Firefox i prywatne dane zostaną zachowane w obu butach i uważam je za bardziej niezawodne.

Trwały dom (zmiana na casper-rw na trwały /)

# this is a 1 Gb file, increase or decrease the count to make it larger or smaller
dd if=/dev/zero of=home-rw bs=1M count=1000

# make a file system
mkfs.ext4 home-rw
mke2fs 1.41.14 (22-Dec-2010)
home-rw is not a block special device.
Proceed anyway? (y,n) y <-- ANSWER 'y' here

#tune the file system to remove reserved blocks and label it 'home-rw'
tune2fs -m 0 -L home-rw home-rw

Umieść home-rww / (w katalogu głównym partycji) lub na dysku flash (nie w podkatalogu).

Podczas uruchamiania płyty CD na żywo naciśnij F6klawisz, a oni Escdodają opcję persistentdo parametrów rozruchu przed „-”

quiet splash persistent --

Skrypty rozruchowe Caspera automatycznie znajdą to zamontowanie.

Zobacz Trwałość Ubuntu wiki - strona wiki Ubuntu omawiała tylko casper-rw, ale skrypty caspera odwołują się do home-rw i działa w ten sam sposób, tylko nazwa została zmieniona.

Zobacz ten post na forach Ubuntu, aby zobaczyć zrzut ekranu (choć z różnymi opcjami).

C. Możesz włączyć trwałość za pomocą kilku narzędzi graficznych, na przykład unetbootin. O ile wiem, używają narzędzi graficznych casper-rw.

OK, teraz kiedy to wszystko zrozumiesz, te dwie strony zaczną mieć więcej sensu

Ubuntu wiki live CD od zera

Ubuntu wiki dostosowuje live CD

Google

Musisz google. Fragmenty porad znajdziesz w Internecie.

Przykład: Jak zmienić ekran powitalny Live CD

Debian Live

Teraz, gdy to wszystko rozumiesz, użyj skryptów Live Debiana . Nie daj się zwieść nazwie, skrypty te działają dobrze na dowolnym systemie .deb, w tym Mint i Ubuntu.

Żeby zainstalować

sudo apt-get install live-build

Istnieje interfejs graficzny

sudo apt-get install live-magic

magia na żywo

Zrozum, że gui magii na żywo mogą zawieść, tak jak zawodzą remastersys i inne gui. W takim przypadku wracasz do skryptów kompilacji na żywo (live-magic wygeneruje katalog kompilacji).

Nauka skryptów kompilacji na żywo i układu / struktury katalogów zajmuje trochę czasu

Zobacz Debiana Live Manuel Aye, jest długi, po prostu przepracuj go pojedynczo.

Zaletą skryptów kompilacji na żywo, gdy zrozumiesz komponenty live CD, skrypty zautomatyzują ponad 90% kompilacji, a dokonanie zmiany jest prostą edycją pliku konfiguracyjnego (zwykle) lub czasem budowaniem initramfs.

Za długo

Jeśli to było dla ciebie za długo, weź głęboki oddech, zrelaksuj się i popracuj nad informacjami pojedynczo. Obiecuję, że zacznie to mieć sens, a przekonasz się, że czas jest tego wart.

Jeśli zaczniesz od innego zestawu narzędzi, wróć do tego zestawu narzędzi i po kilku iso docenisz ten zestaw instrukcji;)

Moja niestandardowa kompilacja 12.04, obsługuje tylko gma500, 2d (bez 3d) po wyjęciu z pudełka (w ciągu kilku dni udostępni publicznie iso publiczności gma 500).

gma 500

bodhi.zazen
źródło
1
O mój. To wspaniała odpowiedź. Wiem co robię dziś wieczorem.
jrg
Ładny. Jeśli nie otrzyma 40 głosów, nikt nie powinien ich zdobyć;)
Rinzwind
Dla wszystkich zainteresowanych udostępniam respin, zobacz mój blog (również na Ubuntu Planet), aby uzyskać szczegółowe informacje i pobrać. blog.bodhizazen.net/linux/ubuntu-gma500-live-cd
Panther