Wiele razy musieliśmy naprawiać system z LiveCD, a na pewnym etapie procesu okazało się, że brakuje nam narzędzia, a kiedy chcemy je zainstalować, system operacyjny LiveCD mówi nam, że zabrakło miejsca i czosnek i wodę (żeby się spierdalać i trzymać).
Zróbmy to. Będziemy używać SystemRescueCD, który oferuje dość wszechstronne środowisko oparte na Gentoo.
W naszym przykładzie (instalacja Linuksa od zera zgodnie z książką Linux From Scratch) brakuje nam programów Bison i Makeinfo, więc zamierzamy stworzyć nowy obraz ISO tego dysku, ale z nowymi narzędziami.
Chociaż używany jest menedżer pakietów (taki jak apt-get Debiana), zamiast pobierać pakiety, kod źródłowy jest pobierany w celu skompilowania go na twoim komputerze.
Do tego procesu będziesz potrzebować partycji Linuksa (na przykład ext4) z co najmniej 1.5G wolnego miejsca, chociaż zalecana jest większa liczba. Jeśli nie chcesz majstrować przy swoich partycjach, skorzystaj z maszyny wirtualnej. Oczywiście wskazane jest, aby partycja miała kilka koncertów, ponieważ podczas procesów kompilacji, instalacji, synchronizacji repozytoriów ... potrzebna jest tymczasowa przestrzeń; Radzę użyć partycji wymiany 8G + 2G (przy 4G + 1G powinno wystarczyć, ale możemy Cię zapewnić, jeśli brakuje pamięci RAM / zamiany, proces będzie jeszcze wolniejszy).
Zakładając, że utworzyłeś maszynę wirtualną z dyskiem 10G, uruchamiasz ją, nakazując jej uruchomienie z nowo pobranego SystemRescueCd. Po wejściu do środka partycjonujemy za pomocą fdisk (jeśli uruchomiłeś sesję graficzną, możesz to zrobić za pomocą gparted, ale celem tego posta jest nauczenie korzystania z podstawowych narzędzi). fdisk to interaktywne polecenie:
- z opcją "n" tworzymy nową partycję
- z opcją "t" zmieniamy typ systemu plików, który zostanie umieszczony na partycji
- z opcją «w» zapisujemy na dysk
- z opcją «q» wychodzimy bez wpisywania zmian
Kiedy użyjemy opcji "n" da nam to kilka opcji, cały czas będziemy używać domyślnych, poza ustawieniem ostatniego sektora w pierwszej partycji, który będziemy musieli wpisać "+ 8G", wskazując tym samym programowi że chcemy, aby nasza partycja zajmowała 8 GB.
Tworząc drugą partycję użyjemy domyślnych opcji, ponieważ reszta miejsca będzie zajęta. Aby również powiedzieć fdisk, że druga partycja będzie typu swap, użyj opcji "t" (kod szesnastkowy wymiany to 82). Interfejs wygląda następująco:
Polecenie% fdisk / dev / sda (m w celu uzyskania pomocy):
Gdy wszystko jest zrobione, używamy opcji "w", aby zapisać zmiany na dysku i wyjść.
Teraz czas na sformatowanie partycji. Zaczniemy od zamiany, aby od razu z niej skorzystać:
% mkswap / dev / sda2% swapon / dev / sda2
Mamy już sformatowaną partycję wymiany i polecenie zamiana zaczęliśmy go używać. Teraz formatujemy pierwszą partycję w ext4:
% mkfs.ext4 /dev/sda1
Możemy zacząć postępować zgodnie z krokami opisanymi w http://www.sysresccd.org/Sysresccd-manual-en_How_to_personalize_SystemRescueCd, tutaj tłumaczę / opisuję je z dziwną adnotacją.
Montujemy partycję na jej miejscu (LiveCD jest już przygotowany z folderem / mnt / custom, w którym musi być zamontowana partycja, na której dokonamy odpowiednich zmian). Również po zamontowaniu będziemy musieli wypakować pliki z dysku, uzyskuje się to za pomocą przygotowanego już skryptu. Skrypt zajmie trochę czasu (ponieważ zrzuca setki megabajtów pamięci), jeśli chcesz sprawdzić, czy faktycznie działa, przejdź do innego terminala (na przykład z Alt + F4) i wykonaj df -h.
% mount / dev / sda2 / mnt / custom% / usr / sbin / sysresccd-custom extract
Jeśli teraz nawigujesz w obrębie / mnt / custom / customcd, zobaczysz kilka folderów. W / mnt / custom / customcd / files odnaleziony zostanie główny system plików. Teraz czas na chroot przyszłego nowego systemu. Tutaj umieszczę polecenia, aby uzyskać więcej informacji o chroot, które możesz zobaczyć ten poradnik napisałem miesiąc temu
% mount -o bind / proc / mnt / custom / customcd / files / proc% mount -o bind / dev / mnt / custom / customcd / files / dev% mount -o bind / sys / mnt / custom / customcd / files / sys% chroot / mnt / custom / customcd / files / bin / bash # gcc-config $ (gcc-config -c)
Jesteśmy już w chrootowanym systemie, który po uruchomieniu będzie systemem LiveCD. Zainstalujemy brakujące pakiety (bison i texinfo) za pomocą polecenia wyłaniać się (który obsługuje paczkę noszenie bagażu z gentoo).
Najpierw synchronizujemy drzewo Portage (odpowiednik apt-get update)
# emerge-webrsync
UWAGA: używamy tego polecenia zamiast „emerge –sync”, ponieważ jest szybsze, ponieważ pobiera pakiet tar z sieci. Ten krok jest konieczny, ponieważ jeśli nie zainstalujesz programu, nastąpi automatyczna synchronizacja, spowalniając go.
Po zsynchronizowaniu drzewa Portage możemy przystąpić do instalacji pakietów:
# emerge sys-devel / bison # emerge sys-devel / texinfo
Zostawiamy chroot:# exit
Odłączamy "/ proc", aby nowo zainstalowane pakiety były przechowywane w squashfs. Odłączamy także "/ dev" i "/ sys", żeby nie zapomnieć później
% umount /mnt/custom/customcd/files/proc
% umount /mnt/custom/customcd/files/dev
% umount /mnt/custom/customcd/files/sys
Ponieważ mamy już przygotowany nowy system plików squasha, tworzymy go następującym poleceniem
% /usr/sbin/sysresccd-custom squashfs
Jeśli chcemy dodać plik do obrazu ISO, ale chcemy, aby znajdował się poza squashfs, musimy umieścić go w folderze «/ mnt / custom / customcd / isoroot»
% cp -a my-files /mnt/custom/customcd/isoroot
Nadszedł wspaniały moment, możemy teraz wygenerować nowy obraz ISO za pomocą naszego dostosowanego systemu!
% /usr/sbin/sysresccd-custom isogen my_srcd
„My_srcd” to nazwa, którą nadajemy woluminowi, możesz go nazwać, jak chcesz. Obraz jest zapisywany w «/ mnt / custom / customcd / isofile», dodatkowo generowany jest również plik .md5 🙂
Jeśli pracujesz na dysku wirtualnym, kluczowy krok pozostaje: wyodrębnij obraz ISO systemu wirtualnego. Jest na to kilka sposobów, wyjaśnię prosty (w VirtualBox), aby uniknąć konieczności instalowania „dodatków gościa” lub czegokolwiek w tym rodzaju.
Użyjemy klienta, aby uzyskać plik przez tunel ssh. Aby to zrobić, musimy najpierw skonfigurować system gościa z hasłem root. Serwer ssh uruchamia się automatycznie, na wszelki wypadek nadal go restartujemy.
% passwd
% /etc/init.d/sshd restart
Musimy skonfigurować przekierowanie portów maszyny wirtualnej. W VirtualBox odbywa się to w następujący sposób:
- Masz dostęp do konfiguracji maszyny wirtualnej
- W sekcji sieciowej skonfigurowałeś już kartę w NAT
- Poszukaj opcji przekierowania portów
- Dodajesz nową regułę z jedynymi parametrami „port hosta” i „port gościa”
- host = 3022 i gość = 22
Dzięki temu osiągnęliśmy, że port 3022 naszego komputera to 22 maszyny wirtualnej. Uruchamiamy klienta Filezilla:
- W parametrze serwera piszemy: sftp: // localhost
- W parametrze nazwy użytkownika piszemy: root
- W parametrze hasła umieszczamy ten, którego używamy w „passwd”
- W parametrze portu wpisujemy: 3022
- Kliknij „Szybkie połączenie”
Jeśli wszystko poszło dobrze po lewej stronie, możemy nawigować po naszym komputerze i po prawej na maszynie wirtualnej. Wystarczy uzyskać dostęp (w maszynie wirtualnej) do folderu «/ mnt / custom / customcd / isofile» i przeciągnąć obraz ISO w wybrane miejsce na naszym komputerze.
!! Gratulacje !! Jeśli wszystko poszło dobrze, masz gotowy obraz ISO z niestandardowym SystemRescueCD i gotowy do uruchomienia z płyty CD, USB ...
Co za dobry przewodnik, nieco skomplikowany, ale bardzo przydatny.
Dobry wpis.
Następnie, mając trochę więcej czasu i bez tak dużego dyskomfortu w oczach, dokładnie to przeczytam. Wydaje się bardzo przydatne i interesujące.
Witam woqer, bardzo dobry post!
Jestem z LFS od kilku lat i stworzyłem własne ISO, które może ci służyć, ma wszystko, czego potrzebujesz do skompilowania, ponieważ jest to LFS. 😀 Mam nadzieję, że Ci się przyda
http://vegnux.org.ve/files/isos/neonatox-06.2rc6.linux-i686-xfce4.iso