Ko config iyi inobva kupi? [Debian/Ubuntu]

Chinangwa cheichi chinyorwa ndechekuratidza maitiro ekugadzirisa mu debian/ubuntu ane hukama ne "kutsvaga kwainobva" mune system yekumisikidza faira.

Muenzaniso wekuyedza: mushure mekunyomba kwakawanda kweiyo tar.gz kopi yeiyo yakaiswa OS uye mushure mekuidzoreredza uye nekuisa zvigadziriso, tinogashira meseji:

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.

Chinangwa: nzwisisa kuti kukosha uku (U1563304817I0) kwakabva kupi uye kuti ungachinje sei nenzira kwayo. Uyu ndiwo muenzaniso wekutanga wakauya, usinganyanyi kunakidza pachawo, asi wakanakira kuratidza nzira dzinoshanda dzekushanda neLinux.

Nhanho nhamba 1: RESUME yakabva kupi?

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

Isu tinoramba (-r) tsvaga kutaurwa kweiyi shanduko mu /etc dhairekitori (apo mazhinji ema configs aripo). Isu tinowana iyo conf.d snippet, iyo inonyatso shandiswa neinitramfs-zvishandiso package.

Ko snippet iyi inobva kupi?

Pane zvisarudzo zvitatu:

  1. Magic artifact (mumwe munhu anoisa uye akanganwa)
  2. Gadzirisa kubva pasuru
  3. Config yakagadzirwa neimwe script kubva kusystem package

Ngatitarisei Nha. 2 (sezviri nyore):

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

dpkg -S inotibvumira kutsvaga dhatabhesi yemafaira akaiswa uye towana kuti faira nderipi pasuru. Heino muenzaniso wekutsvaga kwakabudirira:

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

Ngatidzokere kubasa redu: faira initramfs-tools/conf.d/resume haina kuiswa pane system kubva pasuru. Pamwe inogadzirwa mune postinst/preinst script yepakeji? Ngatitarisei shanduro nhamba 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

Mutsamba /var/lib/dpkg/info/ kune mavhezheni asina kuvharwa eese "metafiles" emapakeji (kumisikidza/kubvisa zvinyorwa, tsananguro yepakeji, nezvimwewo). Zvinoshamisa kuti faira iyi inobviswa mu postrm (pa uninstall) yeinitramfs-tools-core package. Ngatitarisei zviri mukati me postinst... Hapana chine chekuita neconf.d directory.

Ngatitarisei mafaera akabatanidzwa mupakeji initramfs-tools-core.

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

chikwata dpkg -L inokutendera kuti utarise mafaera ese ari pane system kubva pane yakatarwa pasuru. Ndaratidza faira rinonakidza pakudzidza. Kuongorora faira kunoratidza kuti shanduko iyi inoshandiswa sei, asi haitauri kwainobva.

debconf

Zvinoratidza kuti iyi inyanzvi yemumwe munhu. Yaani? Tisati tanyura mukati meiyo yekuisa, ngatitarisei imwe yakakosha Debian masisitimu - mhinduro kumibvunzo. Pese pasuru painobvunza mubvunzo, uye muzviitiko zvakawanda kana ikasabvunza mubvunzo asi ichishandisa sarudzo yekusarudzika, zvese mubvunzo nemhinduro zvinorekodhwa mune yakakosha dhatabhesi muDebian inonzi debconf. Tinogona kutarisa dhatabhesi yemhinduro (uye kutovaisa tisati taisa iyo pasuru pachayo - debconf-set-selections), nokuda kweizvi tinoda kushandiswa debconf-get-selections kubva pakuumbwa debconf-utils. Nehurombo, hapana chinonakidza chakawanikwa :(debconf-get-selections |grep -i resume akadzoka asina chinhu).

debian-inosimudza

Mugadziri ane dhatabhesi yake yemhinduro kumibvunzo: /var/log/installer/cdebconf/questions.dat. Nehurombo, hapana zvakare kana izwi nezve yedu kutangazve.
Asi pane matanda padyo, kusanganisira. syslog, panonyorwa iyo yese yekuisa log. Iyo base-installer package inotaurwa ipapo, uye pairi peji isu tinogona kuona chinongedzo kune mbishi.

Mukati mavo tinogona kuwana nyore mhinduro kumubvunzo wedu:

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

mapdevfs chinhu chinoshandiswa chine chinangwa chakajeka, uye basa ratiri kufarira ndere get_resume_partition, iyo inoverenga /proc/swaps uye inosarudza yakakura kwazvo ipapo. Kuchinjana kunobva kune partman.

Mhinduro yebasa redu rekuyedza: iyo faira inogadzirwa neanoisa mu / chinangwa panguva yekuiswa, i.e. tiri kutaura nezve inozivikanwa, asi yakagadzirwa. Iko hakuna kana chero chinhu mumapakeji aripo mune system anogona kushandura iyi faira.

Summing up

  1. dpkg uye debconf ndiyo nzira huru dzekuwana vanopa mafaera.
  2. kutsvaga mukati /var/lib/dpkg/info inobvumidza iwe kuti uone mashandiro pamafaira panguva yekuisa chikamu.
  3. Iyo yekuisa inogona kugadzira mafaera ekugadzira ayo anobva ambosambochinjwa chero munhu (kunze kwemushandisi), uye izvi zvinogona kuoneka mune yekuisa kodhi.

Source: www.habr.com

Voeg