ΠžΡ‚ΠΊΡŠΠ΄Π΅ ΠΈΠ΄Π²Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³? [Debian/Ubuntu]

Π¦Π΅Π»Ρ‚Π° Π½Π° Ρ‚ΠΎΠ·ΠΈ пост Π΅ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°Ρ‚Π° Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π² debian/ubuntu, ΡΠ²ΡŠΡ€Π·Π°Π½Π° с β€žΠ½Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ°β€œ Π² систСмния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ».

ВСстовый ΠΏΡ€ΠΈΠΌΠ΅Ρ€: слСд дълги мъки с tar.gz ΠΊΠΎΠΏΠΈΠ΅ Π½Π° инсталираната ОБ ΠΈ слСд Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΈ инсталиранС Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅:

update-initramfs: Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° /boot/initrd.img-4.15.0-54-generic
W: ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡΡ‚Π° Π½Π° initramfs-tools Π·Π°Π΄Π°Π²Π° RESUME=/dev/mapper/U1563304817I0-swap
W: Π½ΠΎ Π½Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π½ΠΎ съвпадСниС Π½Π° устройството Π·Π° суап.
I: Initramfs Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π° Π΄Π° възобнови ΠΎΡ‚ /dev/dm-1
I: (/dev/mapper/foobar-swap)
I: Π—Π°Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° RESUME, Π·Π° Π΄Π° я Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅.

Π¦Π΅Π»: Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΎΡ‚ΠΊΡŠΠ΄Π΅ ΠΈΠ΄Π²Π° Ρ‚ΠΎΠ²Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (U1563304817I0) ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° Π³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌ. Π’ΠΎΠ²Π° Π΅ ΠΏΡŠΡ€Π²ΠΈΡΡ‚ ΠΏΠΎΠΏΠ°Π΄Π½Π°Π» ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ особСно интСрСсСн сам ΠΏΠΎ сСбС си, Π½ΠΎ ΡƒΠ΄ΠΎΠ±Π΅Π½, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ практичСскитС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Linux..

Π‘Ρ‚ΡŠΠΏΠΊΠ° Π½ΠΎΠΌΠ΅Ρ€ 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: Π½Π΅ Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ ΠΏΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ отговаря Π½Π° шаблона *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. НСка Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° нСговия postinst... Нищо, ΠΊΠΎΠ΅Ρ‚ΠΎ касаС ΠΊΠΎΠ½Ρ„.Π΄ дирСкторията.

НСка Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° initramfs-tools-core.

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

Команда dpkg -L Π½ΠΈ позволява Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ всички Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ° Π² систСмата ΠΎΡ‚ Π΄Π°Π΄Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚. Π˜Π·Π±Ρ€Π°Ρ… интСрСсСн Π·Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅ Ρ„Π°ΠΉΠ». Π˜Π·ΡΠ»Π΅Π΄Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‚Π°Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, Π½ΠΎ Π½Π΅ отговаря Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠ° ΠΎΡ‚ΠΊΡŠΠ΄Π΅ ΠΈΠ΄Π²Π°.

debconf

ИзглСТда, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ Π½Π° някого. Π§ΠΈΠΉ? ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° сС впуснСм Π² инсталатора, Π½Π΅ΠΊΠ° Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ ΠΎΡ‰Π΅ Π΅Π΄Π½Π° Π²Π°ΠΆΠ½Π° инфраструктура Π½Π° Debian β€” ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠΈΡ‚Π΅. ВсСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π°Π΄Π°Π²Π° Π²ΡŠΠΏΡ€ΠΎΡ, ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎ случаи, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π΅ Π·Π°Π΄Π°Π²Π° Π²ΡŠΠΏΡ€ΠΎΡ, Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° стандартния Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠ°ΠΊΡ‚ΠΎ Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚, Ρ‚Π°ΠΊΠ° ΠΈ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ сС записват Π² спСциална Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π² Debian, Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° debconf. МоТСм Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π±Π°Π·Π°Ρ‚Π° с ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ (ΠΈ Π΄ΠΎΡ€ΠΈ Π΄Π° Π³ΠΈ поставим ΠΏΡ€Π΅Π΄ΠΈ инсталацията Π½Π° самия ΠΏΠ°ΠΊΠ΅Ρ‚ β€” debconf-set-selections), Π·Π° Ρ†Π΅Π»Ρ‚Π° Π½ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° debconf-get-selections ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° debconf-utils. Π—Π° съТалСниС, Π½Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ…ΠΌΠ΅ Π½ΠΈΡ‰ΠΎ интСрСсно: (debconf-get-selections |grep -i resume Π²ΡŠΡ€Π½Π° Π½ΠΈ ΠΏΡ€Π°Π·Π½ΠΎ.).

debian-installer

Π˜Π½ΡΡ‚Π°Π»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΈΠΌΠ° своя собствСна Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ с ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠΈΡ‚Π΅: /var/log/installer/cdebconf/questions.dat. Π—Π° съТалСниС, Ρ‚Π°ΠΌ ΡΡŠΡ‰ΠΎ няма ΠΈ Π΄ΡƒΠΌΠ° Π·Π° нашия resume.
Π—Π°Ρ‚ΠΎΠ²Π° Π΄ΠΎ Π±Π»ΠΈΠ·ΠΎ ΠΈΠΌΠ° Π»ΠΎΠ³Π°, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ syslog, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС записва цСлият инсталационСн Π»ΠΎΠ³. Π’Π°ΠΌ сС спомСнава ΠΏΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ base-installer, ΠΈ Π½Π° нСговия страница ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π²Ρ€ΡŠΠ·ΠΊΠ° към изходния ΠΊΠΎΠ΄.

Π’ΡŠΡ‚Ρ€Π΅ Π² тях лСсно Π½Π°ΠΌΠΈΡ€Π°ΠΌΠ΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠ° Π½ΠΈ:

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

mapdevfs β€” Ρ‚ΠΎΠ²Π° Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° с ясно Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° интСрСсната Π·Π° нас функция Π΅ get_resume_partition, която Ρ‡Π΅Ρ‚Π΅ /proc/swaps ΠΈ ΠΈΠ·Π±ΠΈΡ€Π° Π½Π°ΠΉ-голямото. Swap ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ΠΎΡ‚ partman.

ΠžΡ‚Π³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ тСстово Π·Π°Π΄Π°Π½ΠΈΠ΅: Ρ„Π°ΠΉΠ»ΡŠΡ‚ сС създава ΠΎΡ‚ инсталатора Π² /target ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° инсталацията, Ρ‚.Π΅. Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° well-known, Π½ΠΎ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚. Π’ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ Π½Π° систСмата ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ няма Π½ΠΈΠΊΠΎΠ³ΠΎ ΠΈ Π½ΠΈΡ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄Π° промСня Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ».

Π’ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅

  1. dpkg ΠΈ debconf β€” основнитС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° доставчици Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.
  2. Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ Π² /var/lib/dpkg/info позволява Π΄Π° сС видят ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π°Π΄ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° инсталацията.
  3. Π˜Π½ΡΡ‚Π°Π»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° създава Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅-Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ послС Π½ΠΈΠΊΠΎΠΉ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ промСня (освСн потрСбитСля), ΠΈ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΠ΄ΠΈ Π² ΠΊΠΎΠ΄Π° Π½Π° инсталатора.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster