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.
- Instalacja pakietu live-build
- Budowa systemu
- Opis parametrów konfiguracji
- Kopiowanie na pamięć USB
- 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.