dracut

Zob. man dracut oraz man dracut.cmdline.

Jesteś zalogowany jako superużytkownik. Przejdź do katalogu domowego i skopiuj z katalogu /boot obraz dysku initramfs, który odpowiada wersji uruchomionego systemu GNU/Linux (uname -a). W poniższych przykładach zakładamy, że ta kopia jest dostępna pod nazwą initramfs-net.img.

  1. Przy pomocy komendy dracut --hostonly initramfs.img utwórz obraz dysku, który pozwala na uruchomienie lokalnego systemu komputerowego.

    Jak wielkość pliku initramfs.img ma się do wielkości pliku initramfs-net.img?

  2. Przeanalizuj zawartość obrazu initramfs-net.img przy pomocy komendy lsinitrd initramfs-net.img oraz skryptu initramfs.sh unpack initramfs-net.img (initramfs.sh --help).

  3. Jaki moduł jądra jest odpowiedzialny za obsługę interfejsów ethernetowych (sieci)? Zob. man lsmod. Co się stanie jeśli ten moduł zostanie usunięty z jądra (man modprobe)? Jak się zmieniają wskazania komendy ip address?

  4. Przy pomocy komendy dracut dodaj do obrazu initramfs-net.img moduł obsługi sieci. Czy wśród modułów uzyskanych przy pomocy komendy dracut --list-modules jest potrzebny moduł? Dlaczego?

  5. Czy wśród modułów dracuta jest moduł network? Jeśli nie, to trzeba doinstalować brakujący pakiet (yum -y install dracut-network). Czy moduł network jest teraz dostępny?

  6. Przy pomocy komendy dracut dodaj do obrazu initramfs-net.img programy ssh, ethtool oraz strace.

  7. Zmodyfikuj tak konfigurację programu ładującego GRUB2 (zob. /etc/grub.d/40_custom), aby można było uruchomić system operacyjny w oparciu o zmodyfikowany obraz initramfs-net.img. Dodaj obsługę opcji rd.break=pre-pivot rd.timeout=10.

  8. Uruchom system operacyjny wg zmodyfikowanej konfiguracji i sprawdź konfigurację sieci. Czy sieć ethernetowa jest dostępna? Czy można skonfigurować interfejs eth0 via dhcp (dhclient -v eth0)? Czy można się połączyć z innymi serwerami? Dlaczego?

  9. Administrator zapomniał hasła do konta użytkownika root, tj. superużytkownika. W jaki sposób można to hasło zmienić?

  10. Wskutek literówki, która zakradła się do pliku /boot/grub2/grub.cfg, została uruchomiona powłoka awaryjna, tj. Dracut Emergency Shell (zanim nastał dracut pojawiał się w takich sytuacjach błąd kernel panic).

    Jakie czynności trzeba wykonać, żeby poprawić konfigurację?

    Jakie czynności trzeba dodatkowo wykonać, żeby ponownie zainstalować program ładujący?

    Jakie znaczenie ma parametr ro występujący w /etc/grub2.cfg (linux16 /boot/vmlinuz… root=LABEL=ROOT ro LANG=…)?

Uwaga! W celu uniknięcia zbędnej frustracji, zmiany w pliku obrazu dysku typu initramfs najlepiej wykonywać jednorazowo. Np. następujące komendy:

# dracut --force --install ssh initramfs.img
# dracut --force --install ethtool initramfs.img
# dracut --force --install strace initramfs.img

nie są równoważne komendzie:

# dracut --force --install "ssh ethtool strace" initramfs.img

Jednak następująca sekwencja komend przyniesie spodziewany efekt:

# dracut --force --add "network" initramfs.img
# dracut --force --add-drivers virtio_net initramfs.img
# dracut --force --install "ssh ethtool strace" initramfs.img