Live manual Debian Live

# Debian Live Manual

# Dostosowywanie zdarzeń podczas uruchamiania systemu

552

# 10. Dostosowywanie zdarzeń podczas uruchamiania systemu

553

Cała konfiguracja, która odbywa się w czasie pracy systemu jest wykonywana przez live-config. Oto niektóre z najbardziej popularnych opcji live-config, którymi mogą być zainteresowani użytkownicy. Pełną listę wszystkich możliwości można znaleźć w podręczniku man pakietu live-config.

554

10.1 Personalizacja użytkownika live

555

Jednym ważnym czynnikiem jest to, że użytkownik jest tworzony przez live-boot w czasie startu systemu, a nie live-build w czasie kompilacji. To wpływa nie tylko, na to gdzie materiały dotyczące użytkownika live są wprowadzone w kompilacji, jak to opisano w Uwzględnianie lokalne Live/chroot, ale również na wszelkie grupyi uprawnienia związane z użytkownikiem live.

556

You can specify additional groups that the live user will belong to by using any of the possibilities to configure live-config. For example, to add the live user to the `fuse` group, you can either add the following file in `config/includes.chroot/etc/live/config.conf.d/10-user-setup.conf`:

557

LIVE_USER_DEFAULT_GROUPS="audio cdrom dip floppy video plugdev netdev powerdev scanner bluetooth fuse"

558

lub użyj `live-config.user-default-groups=audio,cdrom,dip,floppy,video,plugdev,netdev,powerdev,scanner,bluetooth,fuse` jako parametru startowego.

559

Możliwe jest również, aby zmienić domyślną nazwę użytkownika "user" i domyślne hasło "live". Jeśli chcesz to zrobić, z jakiegokolwiek powodu, można to łatwo osiągnąć w następujący sposób:

560

Aby zmienić domyślną nazwę użytkownika należy po prostu określić ją w konfiguracji:

561

$ lb config --bootappend-live "boot=live components username=live-user"

562

Jednym z możliwych sposobów zmiany domyślnego hasła jest użycie odpowiedniego haka, jak opisano w Haki podczas uruchamiania systemu. W tym celu można użyć haka "passwd" z `/usr/share/doc/live-config/examples/hooks`, przedrostkiem jest odpowiednio (np. 2000-passwd), należy go dodać do `config/includes.chroot/lib/live/config/`

563

10.2 Ustawianie lokalizacji i języka

564

Podczas uruchamiania systemu live, język jest definiowany przez dwa etapy:

565

- generowanie plików lokalizacji

566

- ustawienie konfiguracji klawiatury

567

Domyślne ustawieniem lokalnym podczas budowania systemu live jest `locales=en_US.UTF-8`. Aby określić ustawienia regionalne, które powinny być wygenerowane, użyj parametru `locales` w opcji `--bootappend-live` polecenia `lb config`, np.

568

$ lb config --bootappend-live "boot=live components locales=de_CH.UTF-8"

569

Wiele lokalizacji może być określone w postaci listy rozdzielonej przecinkami.

570

Parametr ten, jak również parametr konfiguracyjny klawiatury jak wskazano poniżej, może być również używany w linii poleceń jądra. Można określić ustawienia regionalne poprzez `language_country` (w tym przypadku używane jest kodowanie domyślne) lub pełnej nazwy z kodowaniem `language_country.encoding`. Lista obsługiwanych lokalizacji i kodowań można znaleźć w `/usr/share/i18n/SUPPORTED`.

571

Zarówno konfiguracja konsoli i klawiatury X wykonywana jest przez `live-config` przy pomocy pakietu `console-setup`. Aby je skonfigurować, ustaw parametry startowe `keyboard-layouts`, `keyboard-variants`, `keyboard-options` i `keyboard-model` przez opcję `--bootappend-live`. Prawidłowe wartośći opcje można znaleźć w `/usr/share/X11/xkb/rules/base.lst`. Aby znaleźć układy i warianty klawiatury dla danego języka, spróbuj wyszukać nazwę w języku angielskim i/lub kraj, gdzie mówi się danym językiem, np.:

572

$ egrep -i '(^!|german.*switzerland)' /usr/share/X11/xkb/rules/base.lst
! model
! layout
ch German (Switzerland)
! variant
legacy ch: German (Switzerland, legacy)
de_nodeadkeys ch: German (Switzerland, eliminate dead keys)
de_sundeadkeys ch: German (Switzerland, Sun dead keys)
de_mac ch: German (Switzerland, Macintosh)
! option

573

Należy pamiętać, że każdy wariant wymienia układ, którego dotyczy w opisie.

574

Często tylko układ klawiatury musi być skonfigurowany. Na przykład, aby uzyskać listę plików lokalizacyjnych dla niemieckiego i szwajcarskiego niemieckiego układu klawiatury w systemie X użyj:

575

$ lb config --bootappend-live "boot=live components locales=de_CH.UTF-8 keyboard-layouts=ch"

576

Jednak dla bardzo konkretnych przypadków użycia, można dodać inne parametry. Na przykład, aby ustawić francusko języczny system z układem klawiatury French-Dvorak (zwany Bepo) na klawiaturze typu USB TypeMatrix EZ-Reach 2030, użyj:

577

$ lb config --bootappend-live \
"boot=live components locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-variants=bepo keyboard-model=tm2030usb"

578

Wiele wartości oddzielonych przecinkami może być przypisane do każdego z parametrów `keyboard-*`, z wyjątkiem `keyboard-model`, który przyjmuje tylko jedną wartość. Proszę przejrzeć podręcznik man `keyboard(5)` aby uzyskać więcej szczegółów i przykładów zmiennych `XKBMODEL`, `XKBLAYOUT`, `XKBVARIANT` i `XKBOPTIONS`. Jeśli podano wiele `keyboard-variants` (ang warianty klawiatury), będą one dopasowane jeden do drugiego przez wartość `keyboard-layouts` (patrz opcja `setxkbmap(1)` `-variant`). Puste wartości są dozwolone; na przykład aby zdefiniować dwa układy, domyślny US QWERTY oraz drugi US Dvorak, zastosuj:

579

$ lb config --bootappend-live \
"boot=live components keyboard-layouts=us,us keyboard-variants=,dvorak"

580

10.3 Persistence

581

Odmianą Live CD jest preinstalowany system, który uruchamia się z nośników tylko do odczytu, takich jak cdrom, gdzie operacje zapisu i modyfikacje nie przetrwają restartów sprzętowych hosta, na którym jest uruchomiony.

582

System live jest uogólnieniem tego paradygmatu, a tym samym wspiera media inne prócz płyt CD; ale dalej jako jego domyślne zachowanie, należy uważać operacje tylko do odczytu a wszekie zmiany, w czasie działania są tracone podczas zamykania systemu.

583

'Persistence' (ang. trwałość) to wspólna nazwa dla różnych rodzajów rozwiązań dla zapisania niektórych lub wszystkich danych między restartami podczas używania i wprowadzania zmian do systemu. Aby zrozumieć, jak to działa to przydatna była by wiedza, że nawet wtedy, gdy system jest uruchamiany i działa z nośnika tylko do odczytu, to modyfikacje plików i katalogów są zapisywane na zapisywalnych nośnikach, typowo dysk RAM (tmpfs) a dane w pamięci RAM nie przetrwają restartu.

584

Dane przechowywane na tym ramdysku powinny być przechowywane na zapisywalnym trwałym nośniku takim jak lokalny dysk, lokalny udział sieciowy lub nawet na sesji wielosesyjnego dysku CD-RW/DVD-RW. Wszystkie te nośniki są obsługiwane w systemach live na różne sposoby i wszystkie, oprócz ostatniej wymagają specjalnego parametru startowego określonego w czasie startu systemu: `persistence`.

585

Jeśli ustawiony jest parametr startowy `persistence` (a `nopersistence` nie jest ustawiony), lokalne nośniki (np. dyski twarde, napędy USB) będą przeszukane w celu znalezienia woluminów trwałości podczas startu systemu. Możliwe jest ograniczenie, jakiego typu woluminy trwałości będą wykorzystane przez określenie pewnych parametrów startowych opisanych w podręczniku man live-boot(7). Wolumin trwałości może być każdym z wymienionych:

586

- partycja, identyfikowana po nazwie GPT.

587

- system plików, identyfikowany po etykiecie.

588

- plik obrazu zlokalizowany na każdym obsługiwanym systemie plików (nawet na partycji NTFS innego systemu), identyfikowany po nazwie pliku.

589

Etykietą dla woluminu musi być `persistence`, ale będzie ignorowane, dopóki nie będzie zawarty w katalogu głównym plik o nazwie `persistence.conf`, który jest używany by pełni dostosować wolumin persistence, to znaczy, że wskazuje się w nim katalogi, w których chcesz zapisać na woluminie zmiany przy restarcie. Zobacz Plik persistence.conf, aby uzyskać więcej szczegółów.

590

Oto kilka przykładów, jak przygotować wolumin, aby mógł być on użyty z opcją persistence. Może to być, na przykład, partycja ext4 na dysku twardym lub na nośniku wymiennym stworzona przez, np.:

591

# mkfs.ext4 -L persistence /dev/sdb1

592

Zobacz również Wykorzystanie przestrzeni pozostałej na nośniku USB.

593

Jeśli masz już partycję na urządzeniu, można po prostu zmienić jego etykietę używając następującego polecenia:

594

# tune2fs -L persistence /dev/sdb1 # for ext2,3,4 filesystems

595

Oto przykład, jak stworzyć plik obrazu opartego na ext4 do zastosowania z opcją persistance:

596

$ dd if=/dev/null of=persistence bs=1 count=0 seek=1G # for a 1GB sized image file
$ /sbin/mkfs.ext4 -F persistence

597

Po utworzeniu pliku obrazu, na przykład, aby sprawić by katalog `/usr` był prwały, ale tylko zapisywał zmiany wprowadzone w tym katalogu, a nie całą zawartość `/usr`, można użyć opcji "union". Jeśli plik obrazu znajduje się w katalogu domowym, należy skopiować go do katalogu głównego systemu plików na dysku twardym i zamontować go w `/mnt` w następujący sposób:

598

# cp persistence /
# mount -t ext4 /persistence /mnt

599

Następnie utwórz plik `persistence.conf` dodając zawartość i odmontowując plik obrazu.

600

# echo "/usr union" >> /mnt/persistence.conf
# umount /mnt

601

Teraz uruchom ponownie i wybierz nośnik live, a następnie uruchom dodając parametr startowy "persistence".

602

10.3.1 Plik persistence.conf

603

Partycję z etykietą `persistence` należy skonfigurować za pomocą pliku `persistence.conf`, aby dowolne katalogi stały się trwałe. Ten plik, znajdujący się w głównym katalogu systemu plików partycji, kontroluje które katalogi są trwałe i w jaki sposób.

604

To jak niestandardowe wierzchnie zamontowania są skonfigurowane jest opisane w szczegółach w podręczniku man persistence.conf(5), ale ten prosty przykład powinien być wystarczający dla większości zastosowań. Powiedzmy, że chcemy, aby nasz katalog domowy i cache APT było trwałe w pamięci podręcznej systemu plików ext4 na partycji /dev/sdb1:

605

# mkfs.ext4 -L persistence /dev/sdb1
# mount -t ext4 /dev/sdb1 /mnt
# echo "/home" >> /mnt/persistence.conf
# echo "/var/cache/apt" >> /mnt/persistence.conf
# umount /mnt

606

Następnie uruchamiamy ponownie komputer. Podczas pierwszego uruchomienia zawartość `/home` i `/var/cache/apt` zostanie skopiowana do woluminu trwałości i od tej pory wszystkie zmiany w tych katalogach będą przechowywane na tym woluminie. Należy pamiętać, że wszelkie ścieżki wymienione w pliku `persistence.conf` nie mogą zawierać spacji lub specjalnych komponentów ścieżki: `.` i `..` . Ponadto, ani `/lib`, `/lib/live` (lub którykolwiek z jego podkatalogów) ani `/` nie może zostać utrwalony za pomocą własnych punktów montowania. Jako obejście tego ograniczenia można dodać `/ union` do pliku `persistence.conf` w celu osiągnięcia pełnej trwałości.

607

10.3.2 Używanie więcej niż jednego magazynu persistence

608

Istnieją różne sposoby korzystania z wielu magazynów trwałości (ang. persistence) dla różnych zastosowań. Na przykład, przy używanie kilku magazynów w tym samym czasie lub wybranie tylko jednego, spośród różnych, do bardzo specyficznych zastosowań.

609

Kilka różnych niestandardowych woluminów-nakładek (z własnymi plikami `persistence.conf`) może być używane w tym samym czasie, ale jeżeli kilka woluminów tworzy ten sam katalog trwałym, będzie używany tylko jeden z nich. Jeśli jakieś dwa punty montowania są "zagnieżdżone" (np. jeden jest podkatalogiem drugiego) to katalog parent (ang. rodzic) zostanie zamontowany przed katalogiem child (ang. dziecko) tak że jeden punkt montowania nie będzie ukryty przed innym. Zagnieżdżone niestandardowe woluminy są problematyczne, jeżeli są wymienione w tym samym pliku `persistence.conf`. Zobacz podręcznik man persistence.conf(5), jak radzić sobie z tym przypadkiem, jeśli naprawdę potrzebujesz (Wskazówka: zazwyczaj nie potrzebujesz).

610

Jednym z możliwych przypadków użycia: Jeśli chcesz przechowywać dane użytkownika np. `/home` i dane superużytkownika tj. `/root` na różnych partycjach, utwórz dwie partycje z etykietą `persistence` i dodaj plik `persistence.conf} na każdą z nich, tak #{# echo "/home" > persistence.conf` na pierwszej partycji, przez co będzą zapisywane pliki użytkownika i `# echo "/root" > persistence.conf` na drugiej partycji, która będzie przechowywać pliki superużytkownika. Wreszcie, należy użyć parametru startowego `persistence`.

611

Jeśli użytkownik będzie potrzebował wiele magazynów trwałości tego samego typu dla różnych miejsc lub dla celów testowych, takich jak magazyny `private` i ​​#{work}# parametr startowy `persistence-label` użyty w połączeniu z parametrem `persistence` pozwoli na wiele unikatowych magazynów trwałości. Przykładem może być, jeśli użytkownik chciałby użyć partycji trwałości oznaczonej `private` dla prywatnych danych, takich jak zakładki w przeglądarce lub innych typów danych, to mógłby użyć parametrów startowych:#{persistence}# `persistence-label=private`. A do przechowywania danych związanych z pracą, takich jak dokumenty, projekty badawcze lub inne rodzaje, mógłby skorzystać z parametrów startowych: `persistence` `persistence-label=work`.

612

Ważne jest, aby pamiętać, że każda z tych partycji, `private` i ​​#{work}#, także potrzebuje pliku `persistence.conf`. Podręcznik man pakietu live-boot zawiera więcej informacji o tym, jak korzystać z tych etykiet z zapisanymi nazwami.

613

10.3.3 Using persistence with encryption

614

Korzystanie z funkcji trwałości (ang. persistence) oznacza, że ​​niektóre poufne dane mogą zostać narażone na ryzyko. Zwłaszcza jeśli trwałe dane są przechowywane na urządzeniu przenośnym, takim jak pamięci USB lub zewnętrzne dyski twarde. To jest miejsce, gdzie przydatne staje się szyfrowanie. Nawet jeśli cała procedura może wydawać się skomplikowana, ze względu na liczbę kroków, które należy podjąć, to jest bardzo łatwo obsługiwać szyfrowane partycje z live-boot. Aby móc korzystać z luks, który jest obsługiwanym typem szyfrowania, musisz zainstalować cryptsetup zarówno na maszynie tworzenia zaszyfrowanych partycji, a także w systemie live, który będzie używał szyfrowanej trwałej partycji.

615

Aby zainstalować cryptsetup na twoim komputerze:

616

# apt-get install cryptsetup

617

Aby zainstalować cryptsetup na twoim systemie live dodaj go do listy pakietów:

618

$ lb config
$ echo "cryptsetup cryptsetup-initramfs" > config/package-lists/encryption.list.chroot

619

Gdy Twoj system live posiada cryptsetup, to w zasadzie wystarczy, już tylko utworzyć nową partycję, zaszyfrować ją i uruchomić z parametrami `persistence` i `persistence-encryption=luks`. Mogliśmy już przewidzieć ten krok i dodać parametry startowe w czasie kompilacji przestrzegając następującej procedury:

620

$ lb config --bootappend-live "boot=live components persistence persistence-encryption=luks"

621

przejdzmy do szczegółów dla tych wszystkich, którzy nie są zaznajomieni z szyfrowaniem. W poniższym przykładzie mamy zamiar użyć partycji na dysku USB, która odpowiada `/dev/sdc2`. Należy zaznaczyć, że należy ustalić, która partycja jest jeden tą, którą masz zamiar używać w tym konkretnym przypadku.

622

Pierwszym krokiem jest podłączenie dysku USB i określenie, którym jest urządzeniem. Zalecaną metodą tworzenia listy urządzeń w live-manual jest `ls -l /dev/disk/by-id`. Następnie utworzymy nową partycję, a następnie zaszyfrujemy ją hasłem w następujący sposób:

623

# cryptsetup --verify-passphrase luksFormat /dev/sdc2

624

Następnie otwieramy partycję LUKS w wirtualnym elemencie odwzorowującym urządzenia /dev/mapper. Można tu użyć dowolnej nazww. Używamy live jako przykład:

625

# cryptsetup luksOpen /dev/sdc2 live

626

Następnym krokiem jest wypełnienie urządzenia zerami przed utworzeniem systemu plików:

627

# dd if=/dev/zero of=/dev/mapper/live

628

Teraz jesteśmy gotowi do stworzenia systemu plików. Warto zauważyć, że dodajemy etykietę `persistence` tak, aby urządzenie zotało zamontowane w jako persistence store (magazyn persistence) w czasie startu systemu.

629

# mkfs.ext4 -L persistence /dev/mapper/live

630

Aby kontynuować naszą konfigurację, musimy zamontować urządzenie, na przykład w `/mnt`.

631

# mount /dev/mapper/live /mnt

632

I stwórz plik `persistence.conf` w katalogu głównym partycji. To jest, jak wyjaśniono wyżej, absolutnie konieczne. Zobacz Plik persistence.conf.

633

# echo "/ union" > /mnt/persistence.conf

634

Potem odmontuj punkt montowania:

635

# umount /mnt

636

I opcjonalnie, choć może to być dobry sposób na zabezpieczenie danych, które właśnie dodaliśmy do partycji, możemy zamknąć urządzenie:

637

# cryptsetup luksClose live

638

Podsumujmy proces. Do tej pory stworzyliśmy system live z możliwością szyfrowania, który można skopiować na nośnik usb, jak wyjaśniono w kopiowaniu hybrydowego obrazu ISO na nośnik pamięci USB. Stworzyliśmy również zaszyfrowaną partycję, która może znajdować się na tym samym nośniku usb, aby można było go nosić ze sobą wszędzie i mamy skonfigurowaną zaszyfrowaną partycję, stosowaną jako magazyn persistence. Więc teraz, musimy tylko uruchomić system live. W czasie startu systemu, na live-boot poprosi nas o wpisanie hasła i zamontuje zaszyfrowaną partycję używaną przez opcję persistence.