Qhov no config los ntawm qhov twg? [Debian/Ubuntu]

Lub hom phiaj ntawm kev tshaj tawm no yog los qhia cov txheej txheem debugging hauv debian / ubuntu ntsig txog "nrhiav qhov chaw" hauv cov ntaub ntawv teeb tsa.

Kuaj piv txwv: tom qab ntau kev thuam ntawm tar.gz daim ntawv theej ntawm OS tau teeb tsa thiab tom qab rov kho nws thiab txhim kho cov tshiab, peb tau txais cov lus:

update-initramfs: Generating /boot/initrd.img-4.15.0-54-generic
W: initramfs-tools configuration sets RESUME=/dev/mapper/U1563304817I0-swap
W: but no matching swap device is available.
I: The initramfs will attempt to resume from /dev/dm-1
I: (/dev/mapper/foobar-swap)
I: Set the RESUME variable to override this.

Lub hom phiaj: nkag siab qhov twg tus nqi no (U1563304817I0) tuaj ntawm thiab yuav hloov pauv li cas kom raug. Qhov no yog thawj tus piv txwv uas tuaj hla, tsis yog qhov nthuav tshwj xeeb hauv nws tus kheej, tab sis yooj yim los qhia cov tswv yim ntawm kev ua haujlwm nrog Linux.

Kauj ruam 1: RESUME tuaj qhov twg?

# cd /etc
# grep -r RESUME
initramfs-tools/conf.d/resume:RESUME=/dev/mapper/U1563304817I0-swap

Peb recursively (-r) nrhiav kev hais txog qhov sib txawv no hauv /etc directory (qhov twg feem ntau ntawm cov configs yog). Peb pom cov conf.d snippet, uas yog siv los ntawm initramfs-tools pob.

Cov kab lus no nyob qhov twg?

Muaj peb kev xaiv:

  1. Khawv koob artifact (ib tug muab nws thiab tsis nco qab)
  2. Config los ntawm pob
  3. Config tsim los ntawm qee cov ntawv sau los ntawm cov pob khoom

Cia peb kuaj No. 2 (raws li qhov yooj yim tshaj):

 dpkg -S initramfs-tools/conf.d/resume
dpkg-query: no path found matching pattern *initramfs-tools/conf.d/resume*

dpkg -S tso cai rau peb tshawb nrhiav cov ntaub ntawv ntawm cov ntaub ntawv tau teeb tsa thiab pom cov pob twg cov ntaub ntawv belongs rau. Nov yog ib qho piv txwv ntawm kev tshawb nrhiav tau zoo:

dpkg -S resolv.conf
manpages: /usr/share/man/man5/resolv.conf.5.gz
systemd: /lib/systemd/resolv.conf

Cia peb rov qab mus rau peb txoj haujlwm: ntaub ntawv initramfs-tools/conf.d/resume yog tsis ntsia rau hauv lub system los ntawm lub pob. Tej zaum nws yog generated nyob rau hauv lub postinst/preinst tsab ntawv ntawm lub pob? Cia peb kuaj xyuas tus lej 3.

# cd /var/lib/dpkg/info/
# grep -r initramfs-tools/conf.d/resume *
initramfs-tools-core.postrm:    rm -f /etc/initramfs-tools/conf.d/resume

Hauv phau ntawv teev lus /var/lib/dpkg/info/ muaj unpacked versions ntawm tag nrho cov "metafiles" ntawm tej pob khoom (installation / tshem tawm scripts, pob piav qhia, thiab lwm yam). Kuj ceeb tias, cov ntaub ntawv no raug tshem tawm hauv postrm (ntawm uninstall) ntawm initramfs-tools-core pob. Cia peb saib cov ntsiab lus ntawm nws qhov postinst... Tsis muaj dab tsi cuam tshuam rau cov ntawv qhia conf.d.

Cia peb saib cov ntaub ntawv suav nrog hauv pob initramfs-tools-core.

# dpkg -L initramfs-tools-core
...
/usr/share/initramfs-tools/hooks/resume
...

pab neeg dpkg -L tso cai rau koj mus saib tag nrho cov ntaub ntawv uas nyob rau hauv lub system los ntawm cov teev pob. Kuv tau taw qhia ib cov ntaub ntawv uas nthuav rau kev kawm. Kev tshuaj xyuas cov ntaub ntawv qhia tau hais tias qhov hloov pauv no siv li cas, tab sis tsis qhia qhov twg los ntawm.

debconf

Nws hloov tawm hais tias qhov no yog ib tug neeg artifact. Leej twg? Ua ntej dhia mus rau hauv lub installer, cia peb saib lwm qhov tseem ceeb ntawm Debian infrastructure - cov lus teb rau cov lus nug. Txhua lub sij hawm ib pob nug ib lo lus nug, thiab ntau zaus thaum nws tsis nug ib lo lus nug tab sis siv lub neej ntawd kev xaiv, ob qho tib si lo lus nug thiab cov lus teb raug kaw nyob rau hauv ib tug tshwj xeeb database nyob rau hauv Debian hu ua debconf. Peb tuaj yeem saib cov ntaub ntawv ntawm cov lus teb (thiab txawm teeb tsa lawv ua ntej txhim kho lub pob nws tus kheej - debconf-set-selections), rau qhov no peb xav tau kev siv hluav taws xob debconf-get-selections los ntawm kev muaj pes tsawg leeg debconf-utils. Hmoov tsis zoo, tsis muaj dab tsi nthuav tau pom :(debconf-get-selections |grep -i resume rov qab npliag).

debian-nruab

Lub installer muaj nws tus kheej database ntawm cov lus teb rau cov lus nug: /var/log/installer/cdebconf/questions.dat. Hmoov tsis zoo, tseem tsis muaj lus hais txog peb qhov kev xav tau.
Tab sis muaj cov cav nyob ze, incl. syslog, qhov twg tag nrho cov log installation tau sau. Lub hauv paus-installer pob tau hais nyob rau ntawd, thiab ntawm nws nplooj ntawv peb tuaj yeem pom qhov txuas rau cov raws.

Hauv lawv peb tuaj yeem yooj yim nrhiav cov lus teb rau peb cov lus nug:

  resume="$(mapdevfs "$resume_devfs")"; then
...
    if [ "$do_initrd" = yes ]; then
     ...
            resumeconf=$IT_CONFDIR/resume
....
                echo "RESUME=$resume" >> $resumeconf

mapdevfs yog qhov khoom siv nrog lub hom phiaj meej, thiab cov haujlwm peb xav tau yog get_resume_partition, uas nyeem /proc/swaps thiab xaiv qhov loj tshaj plaws nyob rau ntawd. Swap los ntawm partman.

Cov lus teb rau peb txoj haujlwm kuaj: cov ntaub ntawv yog tsim los ntawm tus installer hauv / lub hom phiaj thaum lub sijhawm teeb tsa, i.e. peb tab tom tham txog qhov paub zoo, tab sis yog ib qho khoom cuav. Tsis muaj leej twg lossis ib yam dab tsi hauv cov pob khoom uas twb muaj lawm hauv qhov system tuaj yeem hloov cov ntaub ntawv no.

Summing txog

  1. dpkg thiab debconf yog txoj hauv kev tseem ceeb rau kev nrhiav cov chaw muab ntaub ntawv.
  2. kev tshawb nrhiav hauv /var/lib/dpkg/info tso cai rau koj kom pom cov haujlwm ntawm cov ntaub ntawv thaum lub sijhawm teeb tsa.
  3. Tus installer tuaj yeem tsim cov ntaub ntawv cuav uas tsis tau hloov pauv los ntawm leej twg (tshwj tsis yog tus neeg siv), thiab qhov no tuaj yeem pom hauv installer code.

Tau qhov twg los: www.hab.com

Ntxiv ib saib