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.
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?
Przeanalizuj zawartość obrazu initramfs-net.img przy pomocy komendy lsinitrd
initramfs-net.img
oraz skryptu initramfs.sh unpack initramfs-net.img
(initramfs.sh --help
).
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
?
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?
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?
Przy pomocy komendy dracut
dodaj do obrazu initramfs-net.img programy ssh,
ethtool oraz strace.
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.
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?
Administrator zapomniał hasła do konta użytkownika root, tj. superużytkownika. W jaki sposób można to hasło zmienić?
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