Debian8-switch-root » История » Версия 11
Константин Пильник, 2019-02-22 15:49
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 | systemctl stop lvm2-lvmetad.socket |
||
39 | |||
40 | mount -n / -o remount,ro |
||
41 | rsync -ax / /mnt/ |
||
42 | 10 | Константин Пильник | |
43 | echo '#!/bin/bash |
||
44 | 11 | Константин Пильник | watch /usr/sbin/sshd -dD' >> /mnt/imssh |
45 | 10 | Константин Пильник | chmod +x /mnt/imssh |
46 | |||
47 | systemctl switch-root /mnt /imssh |
||
48 | 8 | Константин Пильник | </pre> |