рд╣реЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХреБрдареВрди рдпреЗрддреЗ? [рдбреЗрдмрд┐рдпрди/рдЙрдмрдВрдЯреВ]

рд╕рд┐рд╕реНрдЯрдо рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ "рд╕реНрд░реЛрдд рд╢реЛрдзрдгреЗ" рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдмрд┐рдпрди/рдЙрдмрдВрдЯреВрдордзреНрдпреЗ рдбреАрдмрдЧрд┐рдВрдЧ рддрдВрддреНрд░ рджрд░реНрд╢рд╡рд┐рдгреЗ рд╣рд╛ рдпрд╛ рдкреЛрд╕реНрдЯрдЪрд╛ рдЙрджреНрджреЗрд╢ рдЖрд╣реЗ.

рдЪрд╛рдЪрдгреА рдЙрджрд╛рд╣рд░рдг: рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ OS рдЪреНрдпрд╛ 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/ рдкреЕрдХреЗрдЬреЗрд╕рдЪреНрдпрд╛ рд╕рд░реНрд╡ "рдореЗрдЯрд╛рдлрд╛рдИрд▓реНрд╕" рдЪреНрдпрд╛ рдЕрдирдкреЕрдХ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛ рдЖрд╣реЗрдд (рд╕реНрдерд╛рдкрдирд╛/рдХрд╛рдврдгреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдкреЕрдХреЗрдЬ рд╡рд░реНрдгрди рдЗ.). рдЖрд╢реНрдЪрд░реНрдпрд╛рдЪреА рдЧреЛрд╖реНрдЯ рдореНрд╣рдгрдЬреЗ, рд╣реА рдлрд╛рдИрд▓ initramfs-tools-core рдкреЕрдХреЗрдЬрдЪреНрдпрд╛ postrm (рд╡рд┐рд╕реНрдерд╛рдкрд┐рдд рдЭрд╛рд▓реНрдпрд╛рд╡рд░) рдХрд╛рдврд▓реА рдЬрд╛рддреЗ. рдЪрд▓рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ postinst рдЪреА рд╕рд╛рдордЧреНрд░реА рдкрд╛рд╣реВрдпрд╛... conf.d рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрд╢реА рдХрд╛рд╣реАрд╣реА рд╕рдВрдмрдВрдзрд┐рдд рдирд╛рд╣реА.

рдкреЕрдХреЗрдЬрдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕ рдкрд╛рд╣реВ initramfs-tools-core.

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

рд╕рдВрдШ dpkg -L рддреБрдореНрд╣рд╛рд▓рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреЕрдХреЗрдЬрдордзреВрди рд╕рд┐рд╕реНрдЯрдорд╡рд░ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдлрд╛рдЗрд▓реНрд╕ рдкрд╛рд╣рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдореА рдПрдХ рдлрд╛рдИрд▓ рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХреЗрд▓реА рдЖрд╣реЗ рдЬреА рдЕрднреНрдпрд╛рд╕рд╛рд╕рд╛рдареА рдордиреЛрд░рдВрдЬрдХ рдЖрд╣реЗ. рдлрд╛рдЗрд▓рдЪреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗрд▓реНрдпрд╛рдиреЗ рд╣реЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдХрд╕реЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ рд╣реЗ рджрд┐рд╕реВрди рдпреЗрддреЗ, рдкрд░рдВрддреБ рддреЗ рдХреЛрдареВрди рдЖрд▓реЗ рдЖрд╣реЗ рд╣реЗ рд╕рд╛рдВрдЧрдд рдирд╛рд╣реА.

рдбреЗрдмрдХреЙрдиреНрдл

рд╣реА рдХреЛрдгрд╛рдЪреА рддрд░реА рдХрд▓рд╛рдХреГрддреА рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рдирд┐рд╖реНрдкрдиреНрди рдЭрд╛рд▓реЗ. рдХреЛрдгрд╛рдЪреА? рдЗрдВрд╕реНрдЯреЙрд▓рд░рдордзреНрдпреЗ рдЬрд╛рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдЖрдгрдЦреА рдПрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪреА рдбреЗрдмрд┐рдпрди рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рдкрд╛рд╣реВ - рдкреНрд░рд╢реНрдирд╛рдВрдЪреА рдЙрддреНрддрд░реЗ. рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджреЗ рдкреЕрдХреЗрдЬ рдкреНрд░рд╢реНрди рд╡рд┐рдЪрд╛рд░рддреЗ, рдЖрдгрд┐ рдЕрдиреЗрдХ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рдЬреЗрд╡реНрд╣рд╛ рддреЗ рдкреНрд░рд╢реНрди рд╡рд┐рдЪрд╛рд░рдд рдирд╛рд╣реА рдкрд░рдВрддреБ рдбреАрдлреЙрд▓реНрдЯ рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░рддреЗ, рддреЗрд╡реНрд╣рд╛ рдкреНрд░рд╢реНрди рдЖрдгрд┐ рдЙрддреНрддрд░ рджреЛрдиреНрд╣реА рдбреЗрдмрд┐рдпрдирдордзреНрдпреЗ debconf рдирд╛рд╡рд╛рдЪреНрдпрд╛ рд╡рд┐рд╢реЗрд╖ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд░реЗрдХреЙрд░реНрдб рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдЖрдореНрд╣реА рдЙрддреНрддрд░рд╛рдВрдЪрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд╛рд╣реВ рд╢рдХрддреЛ (рдЖрдгрд┐ рдкреЕрдХреЗрдЬ рд╕реНрд╡рддрдГ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рддреЗ рд╕реЗрдЯ рджреЗрдЦреАрд▓ рдХрд░реВ рд╢рдХрддреЛ - debconf-set-selections), рдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣рд╛рд▓рд╛ рдЙрдкрдпреБрдХреНрддрддрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ debconf-get-selections рд░рдЪрдирд╛ рдкрд╛рд╕реВрди debconf-utils. рджреБрд░реНрджреИрд╡рд╛рдиреЗ, рдордиреЛрд░рдВрдЬрдХ рдХрд╛рд╣реАрд╣реА рдЖрдврд│рд▓реЗ рдирд╛рд╣реА :(debconf-get-selections |grep -i resume рд░рд┐рдХрд╛рдореЗ рдкрд░рдд рдЖрд▓реЗ).

рдбреЗрдмрд┐рдпрди-рдЗрдВрд╕реНрдЯреЙрд▓рд░

рдЗрдВрд╕реНрдЯреЙрд▓рд░рдХрдбреЗ рдкреНрд░рд╢реНрдирд╛рдВрдЪреНрдпрд╛ рдЙрддреНрддрд░рд╛рдВрдЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрд╣реЗ: /var/log/installer/cdebconf/questions.dat. рджреБрд░реНрджреИрд╡рд╛рдиреЗ, рдЖрдордЪреНрдпрд╛ рд░реЗрдЭреНрдпреБрдореЗрдмрджреНрджрд▓ рдПрдХ рд╢рдмреНрдж рджреЗрдЦреАрд▓ рдирд╛рд╣реА.
рдкрдг рдЬрд╡рд│рдкрд╛рд╕ рдиреЛрдВрджреА рдЖрд╣реЗрдд. syslog, рдЬреЗрдереЗ рд╕рдВрдкреВрд░реНрдг рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд▓реЙрдЧ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрд╣реЗ. рдмреЗрд╕-рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдкреЕрдХреЗрдЬ рддреЗрдереЗ рдирдореВрдж рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдкреГрд╖реНрда рдЖрдкрдг рд░реЙ рдЪреА рд▓рд┐рдВрдХ рдкрд╛рд╣реВ рд╢рдХрддреЛ.

рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЖрдд рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рдЪреЗ рдЙрддреНрддрд░ рд╕рд╣рдЬрдкрдгреЗ рд╢реЛрдзреВ рд╢рдХрддреЛ:

  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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛