No hea mai kēia config? [Debian/Ubuntu]

ʻO ke kumu o kēia pou e hōʻike i kahi ʻenehana debugging ma debian/ubuntu e pili ana i ka "ʻimi ʻana i ke kumu" i ka faila hoʻonohonoho ʻōnaehana.

Laʻana hoʻāʻo: ma hope o ka hoʻomāʻewaʻewa nui ʻana i ke kope tar.gz o ka OS i hoʻokomo ʻia a ma hope o ka hoʻihoʻi ʻana a me ka hoʻokomo ʻana i nā mea hou, loaʻa iā mākou ka leka:

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.

Pahuhopu: hoʻomaopopo i hea mai kēia waiwai (U1563304817I0) a pehea e hoʻololi pono ai. ʻO kēia ka laʻana mua i loaʻa, ʻaʻole hoihoi loa iā ia iho, akā maʻalahi e hōʻike i nā ʻano hana o ka hana ʻana me Linux.

KaʻAnuʻu helu 1: No hea mai ʻo RESUME?

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

Hoʻomaka mākou (-r) e ʻimi i kahi ʻōlelo o kēia ʻano hoʻololi i ka papa kuhikuhi /etc (kahi o ka hapa nui o nā configs). Loaʻa iā mākou ka conf.d snippet, i hoʻohana maopopo ʻia e ka pūʻolo initramfs-tools.

No hea mai kēia snippet?

ʻEkolu aʻe koho:

  1. Mea hana kilokilo (hoʻokomo kekahi a poina)
  2. Config mai ka pūʻolo
  3. Hoʻokumu ʻia ka config e kekahi palapala mai nā pūʻolo ʻōnaehana

E nānā kākou i ka helu 2 (ma ka maʻalahi loa):

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

dpkg -S hiki iā mākou ke ʻimi i ka waihona o nā faila i hoʻokomo ʻia a ʻike i ka pūʻolo nona ka faila. Eia kekahi laʻana o ka huli holomua.

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

E hoʻi kāua i kā mākou hana: file initramfs-tools/conf.d/resume ʻaʻole i hoʻokomo ʻia ma ka ʻōnaehana mai ka pūʻolo. Hana ʻia paha ia ma ka postinst/preinst script o ka pūʻolo? E nānā i ka helu helu 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

Ma ka papa helu /var/lib/dpkg/info/ aia nā mana i wehe ʻole ʻia o nā "metafiles" āpau o nā pūʻolo (nā palapala hoʻonohonoho / wehe ʻana, nā wehewehe ʻana o ka pūʻolo, a me nā mea ʻē aʻe). ʻO ka mea kupanaha, ua hoʻoneʻe ʻia kēia faila ma ka postrm (ma ka uninstall) o ka pūʻolo initramfs-tools-core. E nānā kākou i nā mea o kāna postinst... ʻAʻohe mea pili i ka papa kuhikuhi conf.d.

E nānā kākou i nā faila i loko o ka pūʻolo initramfs-tools-core.

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

hui dpkg -L hiki iā ʻoe ke nānā i nā faila a pau ma ka ʻōnaehana mai ka pūʻolo i kuhikuhi ʻia. Ua hōʻike au i kahi faila hoihoi no ke aʻo ʻana. ʻO ka nānā ʻana i ka faila e hōʻike i ke ʻano o ka hoʻohana ʻia ʻana o kēia ʻano, akā ʻaʻole ia e haʻi mai kahi i hele mai ai.

debconf

ʻIke ʻia he mea hana kēia a kekahi. Na wai? Ma mua o ka luʻu ʻana i ka mea hoʻonoho, e nānā kākou i kahi ʻoihana Debian koʻikoʻi - pane i nā nīnau. I kēlā me kēia manawa e nīnau ai kahi pūʻolo i kahi nīnau, a i nā manawa he nui inā ʻaʻole ia e nīnau i kahi nīnau akā hoʻohana i ka koho paʻamau, ua hoʻopaʻa ʻia ka nīnau a me ka pane i kahi waihona kūikawā ma Debian i kapa ʻia ʻo debconf. Hiki iā mākou ke nānā i ka waihona o nā pane (a hoʻonohonoho iā lākou ma mua o ka hoʻokomo ʻana i ka pūʻolo ponoʻī - debconf-set-selections), no kēia pono mākou i kahi pono debconf-get-selections mai ka haku mele debconf-utils. ʻO ka mea pōʻino, ʻaʻohe mea hoihoi i loaʻa:debconf-get-selections |grep -i resume hoʻi nele).

mea hoʻouka debian

Loaʻa i ka mea hoʻonoho kāna waihona waihona o nā pane i nā nīnau: /var/log/installer/cdebconf/questions.dat. ʻO ka mea pōʻino, ʻaʻohe huaʻōlelo e pili ana i kā mākou resume.
Akā aia nā lāʻau ma kahi kokoke, incl. syslog, kahi i kākau ʻia ai ka log hoʻonohonoho holoʻokoʻa. Ua ʻōlelo ʻia ka pūʻolo kumu-installer ma laila, a ma luna ʻaoʻao hiki iā mākou ke ʻike i ka loulou i nā raws.

I loko o ia mau mea hiki iā mākou ke loaʻa ka pane i kā mākou nīnau:

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

ʻO mapdevfs kahi mea pono me kahi kumu maopopo, a ʻo ka hana a mākou e makemake ai get_resume_partition, e heluhelu ana /proc/swaps a koho i ka mea nui loa ma laila. Hele mai ʻo Swap mai partman.

ʻO ka pane i kā mākou hana hoʻāʻo: ua hana ʻia ka faila e ka mea hoʻokomo i /target i ka manawa o ke kau ʻana, ʻo ia hoʻi. ke kamaʻilio nei mākou e pili ana i ka mea kaulana, akā he mea hana. ʻAʻohe mea a i ʻole kekahi mea i loko o nā pūʻolo i loaʻa i ka ʻōnaehana hiki ke hoʻololi i kēia faila.

E hōʻuluʻulu

  1. ʻO dpkg a me debconf nā ala nui no ka ʻimi ʻana i nā mea hoʻolako faila.
  2. ʻO ka ʻimi ʻana ma /var/lib/dpkg/info e ʻae iā ʻoe e ʻike i nā hana ma nā faila i ka wā hoʻonohonoho.
  3. Hiki i ka mea hoʻonoho ke hana i nā faila artifact i hoʻololi ʻole ʻia e kekahi (koe wale ka mea hoʻohana), a hiki ke ʻike ʻia kēia ma ke code installer.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka