Dostosowywanie dysku naprawczego: Droga do LFS

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ć).

Ten problem naprawdę przyszedł do mnie z powodu przejścia do LFS (LinuxOd podstaw), który jest przewodnikiem (NIE dystrybucją samą w sobie), jak zainstalować niestandardowy system Linux. Celem tej „dystrybucji” jest to, że z dowolnego LiveCD i odpowiednich narzędzi pobierasz kod jądra i inne narzędzia do zbudowania własnego systemu (kompilując wszystko stopniowo). Jeśli chcesz postępować zgodnie z przewodnikiem krok po kroku, potrzebujesz kilku narzędzi i kompilatorów, a nie ma liveCD ze wszystkim, więc musisz go dostosować.

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.

UWAGA: Gentoo jest kompilacją in situ wszystkie pakiety do zainstalowania, dlatego proces dodawania i aktualizowania programów jest powolny.

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
skompilowanie bizonu zajmie trochę czasu, bądź cierpliwy

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

W tym miejscu oficjalny przewodnik informuje, że można ustawić układ klawiszy tak, aby uruchamiał się z domyślną klawiaturą (na przykład „es” dla klawiatur hiszpańskich). Ale wykonując kilka testów, skrypt, którego dla mnie używają, nie zadziałał i spowodował błąd podczas ładowania jądra, więc pominę ten krok.

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:

  1. Masz dostęp do konfiguracji maszyny wirtualnej
  2. W sekcji sieciowej skonfigurowałeś już kartę w NAT
  3. Poszukaj opcji przekierowania portów
  4. Dodajesz nową regułę z jedynymi parametrami „port hosta” i „port gościa”
  5. host = 3022 i gość = 22

Dzięki temu osiągnęliśmy, że port 3022 naszego komputera to 22 maszyny wirtualnej. Uruchamiamy klienta Filezilla:

  1. W parametrze serwera piszemy: sftp: // localhost
  2. W parametrze nazwy użytkownika piszemy: root
  3. W parametrze hasła umieszczamy ten, którego używamy w „passwd”
  4. W parametrze portu wpisujemy: 3022
  5. 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 ...


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   Lew powiedział

    Co za dobry przewodnik, nieco skomplikowany, ale bardzo przydatny.
    Dobry wpis.

  2.   Leper_Ivan powiedział

    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.

  3.   Carlosa Sancheza powiedział

    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