Budowa systemu Debian Live z możliwością zapisu

Obecnie stawianie systemu na nośniku USB (pendrive) jest powszechnie stosowane. Taki system jest bardzo przydatny w wielu rozwiązaniach. Nawet wydawcy dystrybucji Linuksa na serio biorą pod uwagę nośnik USB i praktycznie wszystkie najpopularniejsze dystrybucje mają obraz stworzony dla pendrivera.

Problem pojawia się, dopiero gdy konkretnych narzędzi brakuje nam w takim systemie. Wtedy chcielibyśmy jakoś zmodyfikować taki system, lecz najczęściej bez większej ingerencji po prostu jest to niemożliwe. Dlaczego tak się dzieje? Dzieje się tak, dlatego że, ten system jest tylko do odczytu i wszelkie zmiany, jakie dokonamy, znikają zaraz po jego zamknięciu. Rozwiązanie,  jakie proponuję to stworzenie własnego spersonalizowanego systemu Debian Live z możliwością zapisu. A więc już podczas tworzenia obrazu będziemy mogli sobie wszystko skonfigurować, tak jak chcemy a w razie pominięcia czegoś, bez większych przeszkód w późniejszym czasie wprowadzimy zmiany.

  1. Instalacja pakietu live-build
  2. Budowa systemu
  3. Opis parametrów konfiguracji
  4. Kopiowanie na pamięć USB
  5. Wykorzystanie funkcji persistence

1. Instalacja pakietu live-build

Aktualizujemy repozytoria:

apt-get update

Instalacja pakietu:

apt-get install live-build

2. Budowa systemu

Przygotowujemy miejsce, w którym chcemy utworzyć nasz obraz i wchodzimy do niego:

mkdir live && cd live

Konfiguracja obrazu:

lb config -d wheezy -b hdd --archive-areas "main contrib non-free" -a i386 --interactive shell --bootappend-live "boot=live config quiet locales=pl_PL.UTF-8 keyboard-layouts=pl persistence noautologin timezone=Europe/Warsaw

Tworzenie obrazu rozpoczynamy poleceniem:

lb build

Po zakończeniu procesu budowy gotowy obraz będzie w naszym katalogu „live” pod nazwą binary.img

W momencie, kiedy nie osiągniemy takiego rezultatu, jaki chcielibyśmy mieć, możemy wszystko wyczyścić i wykonać ponownie całą procedurę.

Czyszczenie całej konfiguracji oraz wszystkiego, co powstało podczas budowy obrazu:

lb clean --purge

Na tym etapie mógłbym zakończyć temat, lecz wyjaśnię jeszcze użyte parametry konfiguracyjne oraz opiszę jak przygotować pendrive z możliwością zapisu.

Po więcej informacji na temat narzędzia live-build zapraszam na
https://manpages.debian.org/testing/live-build/live-build.7.en.html

3. Opis parametrów konfiguracji

  • „-d” – Wybieramy preferowaną gałąź Debiana. Przykład:
-d wheezy
  •  „-b” – Określa typ budowanego obrazu. W naszym przypadku chcemy uzyskać obraz z rozszerzeniem .img aby potem umieścić go na pamięci USB. Przykład:
-b hdd
  • „–archive-areas” – Tym parametrem ustawiamy dostęp do oprogramowania w repozytorium z sekcji contrib i non-free. Przykład:
--archive-areas "main contrib non-free"
  • „-a” – Wybór architektury tworzonego systemu. Przykład:
-a i386
  • „–linux-flavours” – Parametr służy do wyboru kerneli. Przykład:
--linux-flavours 686-pae
  •  „–interactive shell” – Użycie tego parametru umożliwia nam podczas budowy obrazu jego odpowiednie skonfigurowanie na własne potrzeby. Możemy praktycznie wszystko zrobić zaczynając od instalacji potrzebnych pakietów po ustawienie haseł oraz użytkowników. Do tego celu na pewnym etapie zostanie nam udostępniona linia komend. Gdy już skończymy konfigurację to poleceniem exit wychodzimy i zostanie wznowiona budowa obrazu.
  • „–bootappend-live” – Umożliwia dodanie parametrów startowych. Przykład:
--bootappend-live "boot=live config quiet locales=pl_PL.UTF-8 keyboard-layouts=pl"

Parametry opcji boot=live

  • „quiet” – Ogranicza ilość komunikatów wyświetlanych podczas uruchamiania systemu.
  • „locales=pl_PL.UTF-8” – Ustawia polską lokalizację systemu.
  • „keyboard-layouts=pl” – Ustawia polski układ klawiatury.
  • „persistence” – Umożliwia zachowywanie zmian dokonanych w systemie.
  • „noautologin” – Wyłącza automatyczne logowanie na konto domyślnego użytkownika.
  • „timezone=Europe/Warsaw” – Zmienia strefę czasową na wskazaną.

Opis wszystkich parametrów znajdziemy w dokumentacji: man lb_config

4. Kopiowanie na pamięć USB

Do skopiowania obrazu na pendrive używamy programu dd:

dd if=/ścieżka/do/obrazu.img of=/dev/sdX

gdzie sdX to nasz pendrive, nie partycja. Oznaczenie dysku możemy sprawdzić np. programem fdisk. Po tej operacji stracimy wszystkie dotychczasowe dane na nośniku.

5. Wykorzystanie funkcji persistence

Persistence jest to nic innego jak możliwość dokonywania zmian w naszym systemie live. Do tego celu wykorzystamy wolne miejsce, jakie nam pozostało na pendrive. Więc fdiskiem tworzymy partycję służącą do zapisu danych:

fdisk /dev/sdX
  • klawiszem n tworzymy nową partycję
  • zatwierdzamy enterem typ partycji (domyślnie podstawowa)
  • zatwierdzamy enterem początek partycji
  • zatwierdzamy enterem koniec partycji
  • zapisujemy zmiany klawiszem w

Następnie formatujemy oraz ustawiamy etykietę nowej partycji:

mkfs.ext2 -L persistence /dev/sdXY

Montujemy partycje:

mount /dev/sdXY /mnt

W miejscu sdXY wstawiamy odpowiedni symbol naszego pendrivera oraz partycji.

Za pomocą edytora tekstu tworzymy plik z odpowiednią zawartością:

nano /mnt/persistence.conf

Zawartość pliku:

/ union

Powyższy wpis oznacza, że wszystkie zmiany dokonane w systemie będą zapisane. W przypadku, gdy chcemy, aby zmiany były dokonywane tylko w odpowiednich katalogach np. w /home i /etc wpis powinien wyglądać tak:

/home union
/etc union

Przy tak skonfigurowanym pendrive mamy system Debian Live z możliwością zapisu danych.

Dołącz do rozmowy

Witaj na moim blogu, gdzie elektronika i oprogramowanie to główne tematy. Jako osoba za sterami tego miejsca, dążę do dostarczania wartościowych treści. Twoje komentarze stanowią dla mnie napęd do ciągłego doskonalenia. Ciekawią mnie Twoje myśli, pytania i osobiste doświadczenia związane z tym fascynującym światem. Przeglądając wpisy, na pewno masz wiele pomysłów i opinii. Nie krępuj się, podziel się nimi poniżej. Każdy komentarz to nie tylko opinia zwrotna, ale także początek inspirującej dyskusji.