Проект

Общее

Профиль

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>