Puncte:0

Anumite comenzi (de exemplu, modprobe sau usermod) eșuează ca comenzi tardive în autoinstalarea Ubuntu

drapel pt

Incerc sa ma instalez containerd pentru kubernetes prin Mecanismul de instalare automată a Ubuntu (pentru Ubuntu 20.04).

Unele comenzi atunci când sunt utilizate în comenzi târzii par să eșueze fără un motiv evident. (Ieșire > 0 fără ieșire descriptivă.) Fragmentul eșuat de la comenzi târzii se pare ca:

  comenzi întârziate:
    - printf 'overlay\nbr_netfilter\n' > /target/etc/modules-load.d/containerd.conf
    - curtin in-target --target=/target -- /usr/sbin/modprobe overlay
    - curtin in-target --target=/target -- /usr/sbin/modprobe br_netfilter

Erorile de instalare arată că modprobe ieșiri de apel 1.

introduceți descrierea imaginii aici

Repornesc VM-ul, mă conectez ca ubuntu, și devin rădăcină. În acel moment pot alerga suprapunere modprobe cu succes (ieșirea 0). Nici eu nu văd /var/crash/16238... (vezi mai sus), deoarece nu pare să existe pe țintă. (Bănuiesc că există în mediul de instalare.) /var/log/installer nici nu conţine nimic util.

Având în vedere cele de mai sus, ce ar putea face modprobe eșuează ca a late-command? Aparent fără legătură, am încercat și un schimbare -d 0 apel care a eșuat și cu mesajul de eroare zero. Există o explicație pentru ce unele comenzi pot să nu existe sau să nu funcționeze corect în mediul țintă în acea etapă?


Editarea 1: în ceea ce privește eșecul usermod, presupun că acest răspuns sugerează că utilizatorul ubuntu nu este creat în acel moment al procesului de instalare.

Edit 2: am adăugat un comenzi de eroare care pare util pentru depanare:

  comenzi de eroare:
    - /usr/bin/tail -n 250 /var/log/syslog

Asta se vede acum Suprapunerea modulului nu a fost găsită în /lib/modules/...:

introduceți descrierea imaginii aici

waltinator avatar
drapel it
Citiți fișierul `/var/crash/` menționat pe ultima linie a imaginii dvs. Este un fișier text, așa că puteți folosi „mai puțin”.
Brad Solomon avatar
drapel pt
Fișierul nu există așa cum este anunțat pe țintă, așa cum este indicat în întrebarea mea. Cred că se află în mediul de instalare, pe care nu îl pot accesa.
Puncte:0
drapel pt

Cauza principală a acestei probleme este că modprobe căuta în locul greșit din cauza unui nucleu actualizat înainte de repornire.

În timpul procesului de instalare, puteți utiliza CTRL+Z pentru a intra într-un shell Bash ca utilizator rădăcină în instalator. În acest mediu, /CD ROM este ISO montat (iso9660) și /ţintă este rădăcina sistemului de fișiere țintă. Aceasta este o modalitate excelentă de a depana curtin in-tinta comenzi, care în mod intern sunt practic a chroot /target apel.

În cazul modprobe, rezultatul arată:

modprobe: FATAL: modulul de suprapunere nu a fost găsit în directorul /lib/modules/5.4.0-65-generic

În timp ce acest director există pe instalator, pe țintă ceea ce există de fapt este:

/target/lib/modules/5.4.0-80-generic

Observați modificarea ușoară a versiunii de kernel pe care modprobe nu a detectat-o. Cred că acest lucru se datorează actualizărilor kernelului în timpul procesului de instalare.

Ca remediere pentru această comandă specifică, modprobe vă permite să setați versiunea:

curtin -v in-target --target=/target \
    -- /usr/sbin/modprobe --set-version 5.4.0-80-generic overlay

Cu --set-version comanda va rula cu succes și va ieși din 0.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.