рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИ? [рдбреЗрдмрд┐рдпрди/рдЙрдмрдВрдЯреВ]

рдЗрд╕ рдкреЛрд╕реНрдЯ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕рд┐рд╕реНрдЯрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ "рд╕реНрд░реЛрдд рдвреВрдВрдврдиреЗ" рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдмрд┐рдпрди/рдЙрдмрдВрдЯреВ рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рддрдХрдиреАрдХ рджрд┐рдЦрд╛рдирд╛ рд╣реИред

рдкрд░реАрдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдг: рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП 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 рдкреИрдХреЗрдЬ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ. рд╢рд╛рдпрдж рдпрд╣ рдкреИрдХреЗрдЬ рдХреА рдкреЛрд╕реНрдЯрдЗрдВрд╕реНрдЯ/рдкреНрд░реАрдЗрдВрд╕реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реБрдЖ рд╣реИ? рдЖрдЗрдП рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ 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 рдкреИрдХреЗрдЬ рдХреЗ рдкреЛрд╕реНрдЯрдЖрд░рдПрдо (рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдкрд░) рдореЗрдВ рд╣рдЯрд╛ рджреА рдЧрдИ рд╣реИред рдЖрдЗрдП рдЗрд╕рдХреЗ рдкреЛрд╕реНрдЯрдЗрдВрд╕реНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦреЗрдВ... conf.d рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рднреА рдирд╣реАрдВред

рдЖрдЗрдП рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджреЗрдЦреЗрдВ initramfs-tools-core.

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

рдЯреАрдо dpkg -L рдЖрдкрдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреИрдХреЗрдЬ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдореМрдЬреВрдж рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ рд╣реИ рдЬреЛ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдлрд╝рд╛рдЗрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рддрд╛ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИред

рджреБрд░реНрдмрд▓

рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреА рдХрд▓рд╛рдХреГрддрд┐ рд╣реИред рдХрд┐рд╕рдХрд╛? рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЗрдмрд┐рдпрди рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ - рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдмред рд╣рд░ рдмрд╛рд░ рдЬрдм рдХреЛрдИ рдкреИрдХреЗрдЬ рдХреЛрдИ рдкреНрд░рд╢реНрди рдкреВрдЫрддрд╛ рд╣реИ, рдФрд░ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрдм рд╡рд╣ рдХреЛрдИ рдкреНрд░рд╢реНрди рдирд╣реАрдВ рдкреВрдЫрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рд╢реНрди рдФрд░ рдЙрддреНрддрд░ рджреЛрдиреЛрдВ рдХреЛ рдбреЗрдмрд┐рдпрди рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдбреЗрдмрдХреЙрдиреНрдлрд╝ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЙрддреНрддрд░реЛрдВ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рд╕реЗрдЯ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - 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

рдореИрдкрдбреЗрд╡рдлрд╝реНрд╕ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЙрджреНрджреЗрд╢реНрдп рд╡рд╛рд▓реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ, рдФрд░ рдЬрд┐рд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рд╡рд╣ рд╣реИ get_resume_partition, рдЬреЛ /proc/swaps рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рд╕реНрд╡реИрдк рдкрд╛рд░реНрдЯрдореИрди рд╕реЗ рдЖрддрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдп рдХрд╛ рдЙрддреНрддрд░: рдлрд╝рд╛рдЗрд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рд╕рдордп рдЗрдВрд╕реНрдЯреЙрд▓рд░ рджреНрд╡рд╛рд░рд╛ /target рдореЗрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЕрд░реНрдерд╛рддред рд╣рдо рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдорд╢рд╣реВрд░, рд▓реЗрдХрд┐рди рдПрдХ рдХрд▓рд╛рдХреГрддрд┐ рдХреАред рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдореМрдЬреВрджрд╛ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдХреЛрдИ рднреА рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрджрд▓ рд╕рдХреЗред

рдЙрдкрд╕рдВрд╣рд╛рд░

  1. рдлрд╝рд╛рдЗрд▓ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП dpkg рдФрд░ debconf рдореБрдЦреНрдп рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВред
  2. /var/lib/dpkg/info рдореЗрдВ рдЦреЛрдЬ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
  3. рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рд╕реА (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рджреНрд╡рд╛рд░рд╛ рдХрднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЛрдб рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ