Debian8-switch-root » История » Версия 12
Константин Пильник, 2019-02-22 15:51
| 1 | 8 | Константин Пильник | h1. Удаленная замена корневой ФС в Debian-systemd |
|---|---|---|---|
| 2 | 1 | Константин Пильник | |
| 3 | 8 | Константин Пильник | h2. debian 8 |
| 4 | |||
| 5 | 7 | Константин Пильник | <pre><code class="python"> |
| 6 | 1 | Константин Пильник | # создаем новый root в /mnt |
| 7 | mount -t tmpfs tmpfs /mnt -o size=1400m |
||
| 8 | cd /mnt |
||
| 9 | |||
| 10 | # останавливаем все, что пытается писать в текущий root |
||
| 11 | /etc/init.d/apache2 stop |
||
| 12 | /etc/init.d/mysql stop |
||
| 13 | /etc/init.d/zabbix-server stop |
||
| 14 | |||
| 15 | # перемонтируем текущий root в readonly |
||
| 16 | 2 | Константин Пильник | mount -n / -o remount,ro |
| 17 | 1 | Константин Пильник | |
| 18 | # копируем текущий root в новый root (/mnt) |
||
| 19 | 3 | Константин Пильник | rsync -ax / /mnt/ |
| 20 | 1 | Константин Пильник | |
| 21 | # переключаемся в новый root |
||
| 22 | |||
| 23 | 6 | Константин Пильник | # При этом все процессы от старого /sbin/init завершатся, |
| 24 | # после чего будет запущен /sbin/init из нового root, |
||
| 25 | # который в свою очередь запустит все, что запускается после initramfs, включая sshd. |
||
| 26 | # О отключении автозапуска таких вещей как apache и/или mysqld нужно позаботиться заранее |
||
| 27 | systemctl switch-root /mnt /sbin/init |
||
| 28 | 1 | Константин Пильник | </code></pre> |
| 29 | 8 | Константин Пильник | |
| 30 | h2. debian 9 |
||
| 31 | |||
| 32 | <pre> |
||
| 33 | modprobe zram && zramctl -f -s 3G |
||
| 34 | mkfs.ext4 /dev/zram0 && mount /dev/zram0 /mnt/ |
||
| 35 | cd /mnt |
||
| 36 | |||
| 37 | systemctl stop syslog.socket |
||
| 38 | 12 | Константин Пильник | timeout 2 systemctl stop lvm2-lvmetad.socket |
| 39 | 8 | Константин Пильник | |
| 40 | 12 | Константин Пильник | mount -n / -o remount,ro && rsync -ax / /mnt/ |
| 41 | 10 | Константин Пильник | |
| 42 | echo '#!/bin/bash |
||
| 43 | 11 | Константин Пильник | watch /usr/sbin/sshd -dD' >> /mnt/imssh |
| 44 | 10 | Константин Пильник | chmod +x /mnt/imssh |
| 45 | |||
| 46 | systemctl switch-root /mnt /imssh |
||
| 47 | 8 | Константин Пильник | </pre> |