ืžืื™ืคื” ื”ืชืฆื•ืจื” ื”ื–ื•? [ื“ื‘ื™ืืŸ/ืื•ื‘ื•ื ื˜ื•]

ืžื˜ืจืช ื”ืคื•ืกื˜ ื”ื–ื” ื”ื™ื ืœื”ืฆื™ื’ ื˜ื›ื ื™ืงืช ื ื™ืคื•ื™ ื‘ืื’ื™ื ื‘-debian/ubuntu ื”ืงืฉื•ืจื” ืœ"ืžืฆื™ืืช ื”ืžืงื•ืจ" ื‘ืงื•ื‘ืฅ ืชืฆื•ืจืช ื”ืžืขืจื›ืช.

ื“ื•ื’ืžื” ืœื‘ื“ื™ืงื”: ืœืื—ืจ ืœืขื’ ืจื‘ ืœืขื•ืชืง tar.gz ืฉืœ ืžืขืจื›ืช ื”ื”ืคืขืœื” ื”ืžื•ืชืงื ืช ื•ืœืื—ืจ ืฉื—ื–ื•ืจื” ื•ื”ืชืงื ืช ืขื“ื›ื•ื ื™ื, ืื ื• ืžืงื‘ืœื™ื ืืช ื”ื”ื•ื“ืขื”:

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.

ื”ืžื˜ืจื”: ืœื”ื‘ื™ืŸ ืžืื™ืคื” ื”ื’ื™ืข ื”ืขืจืš ื”ื–ื” (U1563304817I0) ื•ื›ื™ืฆื“ ืœืฉื ื•ืช ืื•ืชื• ื ื›ื•ืŸ. ื–ื• ื”ื“ื•ื’ืžื” ื”ืจืืฉื•ื ื” ืฉื ืชืงืœื” ื‘ื”, ืœื ืžืขื ื™ื™ื ืช ื‘ืžื™ื•ื—ื“ ื‘ืคื ื™ ืขืฆืžื”, ืื‘ืœ ื ื•ื—ื” ืœื”ืจืื•ืช ืฉื™ื˜ื•ืช ืžืขืฉื™ื•ืช ืœืขื‘ื•ื“ื” ืขื ืœื™ื ื•ืงืก.

ืฉืœื‘ ืžืกืคืจ 1: ืžืื™ืคื” ื”ื’ื™ืข ื”-RESUME?

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

ืื ื—ื ื• ืจืงื•ืจืกื™ื‘ื™ืช (-r) ื—ืคืฉ ืื–ื›ื•ืจ ืฉืœ ื”ืžืฉืชื ื” ื”ื–ื” ื‘ืกืคืจื™ื™ืช /etc (ืฉื ืจื•ื‘ ื”ื”ื’ื“ืจื•ืช). ืื ื• ืžื•ืฆืื™ื ืืช ืงื˜ืข ื”ืงื•ื“ conf.d, ื”ืžืฉืžืฉ ื‘ื‘ื™ืจื•ืจ ืืช ื—ื‘ื™ืœืช initramfs-tools.

ืžืื™ืคื” ื”ืงื˜ืข ื”ื–ื”?

ื™ืฉ ืฉืœื•ืฉ ืืคืฉืจื•ื™ื•ืช:

  1. ื—ืคืฅ ืงืกื (ืžื™ืฉื”ื• ืฉื ืื•ืชื• ื•ืฉื›ื—)
  2. ืชืฆื•ืจื” ืžื”ื—ื‘ื™ืœื”
  3. ืชืฆื•ืจื” ืฉื ื•ืฆืจื” ืขืœ ื™ื“ื™ ืกืงืจื™ืคื˜ ื›ืœืฉื”ื• ืžื—ื‘ื™ืœื•ืช ืžืขืจื›ืช

ื‘ื•ืื• ื ื‘ื“ื•ืง ืืช ืžืก' 2 (ื›ืžื• ื”ืคืฉื•ื˜ ื‘ื™ื•ืชืจ):

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

dpkg -S ืžืืคืฉืจ ืœื ื• ืœื—ืคืฉ ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ ื”ืงื‘ืฆื™ื ื”ืžื•ืชืงื ื™ื ื•ืœืžืฆื•ื ืœืื™ื–ื• ื—ื‘ื™ืœื” ืฉื™ื™ืš ื”ืงื•ื‘ืฅ. ื”ื ื” ื“ื•ื’ืžื” ืœื—ื™ืคื•ืฉ ืžื•ืฆืœื—:

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

ื ื—ื–ื•ืจ ืœืžืฉื™ืžื” ืฉืœื ื•: ืงื•ื‘ืฅ initramfs-tools/conf.d/resume ืœื ืžื•ืชืงืŸ ืขืœ ื”ืžืขืจื›ืช ืžื”ื—ื‘ื™ืœื”. ืื•ืœื™ ื–ื” ื ื•ืฆืจ ื‘ืกืงืจื™ืคื˜ postinst/preinst ืฉืœ ื”ื—ื‘ื™ืœื”? ื‘ื•ื ื ื‘ื“ื•ืง ืืช ื’ืจืกื” ืžืกืคืจ 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

ื‘ืงื˜ืœื•ื’ /var/lib/dpkg/info/ ื™ืฉื ืŸ ื’ืจืกืื•ืช ืœื ืืจื•ื–ื•ืช ืฉืœ ื›ืœ ื”"ืžื˜ืืคื™ืœื™ื" ืฉืœ ื”ื—ื‘ื™ืœื•ืช (ืกืงืจื™ืคื˜ื™ื ืœื”ืชืงื ื”/ื”ืกืจื”, ืชื™ืื•ืจื™ ื—ื‘ื™ืœื•ืช ื•ื›ื•'). ื‘ืื•ืคืŸ ืžืคืชื™ืข, ื”ืงื•ื‘ืฅ ื”ื–ื” ืžื•ืกืจ ื‘-postrm (ื‘ื”ืกืจืช ื”ื”ืชืงื ื”) ืฉืœ ื—ื‘ื™ืœืช initramfs-tools-core. ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื”ืชื•ื›ืŸ ืฉืœ ื”ืคื•ืกื˜ ืฉืœื•... ืฉื•ื ื“ื‘ืจ ืœื ืงืฉื•ืจ ืœืกืคืจื™ื™ืช conf.d.

ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื”ืงื‘ืฆื™ื ื”ื›ืœื•ืœื™ื ื‘ื—ื‘ื™ืœื” initramfs-tools-core.

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

ืงื‘ื•ืฆื” dpkg -L ืžืืคืฉืจ ืœืš ืœื”ืฆื™ื’ ืืช ื›ืœ ื”ืงื‘ืฆื™ื ืฉื ืžืฆืื™ื ื‘ืžืขืจื›ืช ืžื”ื—ื‘ื™ืœื” ืฉืฆื•ื™ื ื”. ื”ื“ื’ืฉืชื™ ืงื•ื‘ืฅ ืฉืžืขื ื™ื™ืŸ ืœืœื™ืžื•ื“. ื‘ื—ื™ื ืช ื”ืงื•ื‘ืฅ ืžืจืื” ื›ื™ืฆื“ ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžืฉืชื ื” ื–ื”, ืืš ืื™ื ื” ืžืกืคืจืช ืžืื™ืคื” ื”ื•ื ืžื’ื™ืข.

debconf

ืžืกืชื‘ืจ ืฉื–ื” ื—ืคืฅ ืฉืœ ืžื™ืฉื”ื•. ืฉืœ ืžื™? ืœืคื ื™ ืฉื ืฆืœื•ืœ ืœืชื•ืš ืชื•ื›ื ื™ืช ื”ื”ืชืงื ื”, ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ืขื•ื“ ืชืฉืชื™ืช ื—ืฉื•ื‘ื” ืฉืœ ื“ื‘ื™ืืŸ - ืชืฉื•ื‘ื•ืช ืœืฉืืœื•ืช. ื‘ื›ืœ ืคืขื ืฉื—ื‘ื™ืœื” ืฉื•ืืœืช ืฉืืœื”, ื•ื‘ืžืงืจื™ื ืจื‘ื™ื ื›ืฉื”ื™ื ืœื ืฉื•ืืœืช ืฉืืœื” ืืœื ืžืฉืชืžืฉืช ื‘ืื•ืคืฆื™ื™ืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ, ื’ื ื”ืฉืืœื” ื•ื’ื ื”ืชืฉื•ื‘ื” ื ืจืฉืžื•ืช ื‘ืžืกื“ ื ืชื•ื ื™ื ืžื™ื•ื—ื“ ื‘ื“ื‘ื™ืืŸ ื‘ืฉื debconf. ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืกืชื›ืœ ืขืœ ืžืื’ืจ ื”ืชืฉื•ื‘ื•ืช (ื•ืืคื™ืœื• ืœื”ื’ื“ื™ืจ ืื•ืชื ืœืคื ื™ ื”ืชืงื ืช ื”ื—ื‘ื™ืœื” ืขืฆืžื” - debconf-set-selections), ื‘ืฉื‘ื™ืœ ื–ื” ืื ื—ื ื• ืฆืจื™ื›ื™ื ื›ืœื™ ืขื–ืจ debconf-get-selections ืžื”ื”ืจื›ื‘ debconf-utils. ืœืžืจื‘ื” ื”ืฆืขืจ, ืฉื•ื ื“ื‘ืจ ืžืขื ื™ื™ืŸ ืœื ื ืžืฆื :(debconf-get-selections |grep -i resume ื”ื•ื—ื–ืจ ืจื™ืง).

ื“ื‘ื™ืืŸ-ืžืชืงื™ืŸ

ืœืžืชืงื™ืŸ ื™ืฉ ืžืกื“ ื ืชื•ื ื™ื ืžืฉืœื• ืฉืœ ืชืฉื•ื‘ื•ืช ืœืฉืืœื•ืช: /var/log/installer/cdebconf/questions.dat. ืœืฆืขืจื™, ืื™ืŸ ื’ื ืžื™ืœื” ืขืœ ืงื•ืจื•ืช ื”ื—ื™ื™ื ืฉืœื ื•.
ืื‘ืœ ื™ืฉ ื‘ื•ืœื™ ืขืฅ ื‘ืงืจื‘ืช ืžืงื•ื, ื›ื•ืœืœ. syslog, ืฉื‘ื• ื ื›ืชื‘ ื™ื•ืžืŸ ื”ื”ืชืงื ื” ื›ื•ืœื•. ื—ื‘ื™ืœืช ื”-base-installer ืžื•ื–ื›ืจืช ืฉื, ื•ืขืœื™ื” ื“ืฃ ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืจืื•ืช ืืช ื”ืงื™ืฉื•ืจ ืœ-raws.

ื‘ืชื•ื›ื ื ื•ื›ืœ ืœืžืฆื•ื ื‘ืงืœื•ืช ืืช ื”ืชืฉื•ื‘ื” ืœืฉืืœืชื ื•:

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

mapdevfs ื”ื•ื ื›ืœื™ ืขื–ืจ ืขื ืžื˜ืจื” ื‘ืจื•ืจื”, ื•ื”ืคื•ื ืงืฆื™ื” ืฉื‘ื” ืื ื• ืžืขื•ื ื™ื™ื ื™ื ื”ื™ื get_resume_partition, ืฉืงื•ืจื ืืช /proc/swaps ื•ื‘ื•ื—ืจ ืืช ื”ื’ื“ื•ืœ ื‘ื™ื•ืชืจ ืฉื. ื”ื—ืœืคื” ืžื’ื™ืขื” ืžืคืจื˜ืžืŸ.

ื”ืชืฉื•ื‘ื” ืœืžืฉื™ืžืช ื”ื‘ื“ื™ืงื” ืฉืœื ื•: ื”ืงื•ื‘ืฅ ื ื•ืฆืจ ืขืœ ื™ื“ื™ ื”ืžืชืงื™ืŸ ื‘-/target ื‘ื–ืžืŸ ื”ื”ืชืงื ื”, ื›ืœื•ืžืจ. ืื ื—ื ื• ืžื“ื‘ืจื™ื ืขืœ ื™ื“ื•ืข, ืื‘ืœ ื—ืคืฅ. ืื™ืŸ ืžื™ืฉื”ื• ืื• ืžืฉื”ื• ื‘ื—ื‘ื™ืœื•ืช ื”ืงื™ื™ืžื•ืช ื‘ืžืขืจื›ืช ืฉื™ื›ื•ืœ ืœืฉื ื•ืช ืืช ื”ืงื•ื‘ืฅ ื”ื–ื”.

ื”ืกืชื›ืžื•ืช

  1. dpkg ื•-debconf ื”ืŸ ื”ืฉื™ื˜ื•ืช ื”ืขื™ืงืจื™ื•ืช ืœืžืฆื™ืืช ืกืคืงื™ ืงื‘ืฆื™ื.
  2. ื—ื™ืคื•ืฉ ื‘- /var/lib/dpkg/info ืžืืคืฉืจ ืœืš ืœืจืื•ืช ืคืขื•ืœื•ืช ืขืœ ืงื‘ืฆื™ื ื‘ืžื”ืœืš ืฉืœื‘ ื”ื”ืชืงื ื”.
  3. ื”ืžืชืงื™ืŸ ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืงื‘ืฆื™ ื—ืคืฆื™ื ืฉืœืขื•ืœื ืื™ื ื ืžืฉืชื ื™ื ืขืœ ื™ื“ื™ ืืฃ ืื—ื“ (ื—ื•ืฅ ืžื”ืžืฉืชืžืฉ), ื•ื ื™ืชืŸ ืœืจืื•ืช ื–ืืช ื‘ืงื•ื“ ื”ืžืชืงื™ืŸ.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”