Проект

Общее

Профиль

Debian8-switch-root » История » Версия 14

Константин Пильник, 2019-02-22 17:08

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 13 Константин Пильник
<pre><code class="bash">
33 8 Константин Пильник
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 13 Константин Пильник
</code></pre>
48 14 Константин Пильник
49
ребут машины
50
<pre>
51
echo b > /proc/sysrq-trigger
52
</pre>