LinuxForum.Fans
Тема

Бэкап системного раздела

Автор: Iskatel 16 сообщений 3355 просмотров
#236910

Такой вопрос. Как сделать бэкап системного раздела (того что смонтирован в /) в тарбал? Нужно ли для этого останавливать систему и грузиться с LiveCD?

#236924

Iskatel, лучше бы, конечно, загрузиться с «живого» диска, но можно и так, исключив, разумеется, разделы с псевдофайловыми системами.
Большое значение, на мой взгляд, имеет и предназначение целевого компьютера — то, что можно сделать на десктопе, на сервере не приветствуется.

#236927

Можно корень примонтировать на живой системе куда-нибудь и затарить оттуда.

#236929

Можно просто tar'ом не раз уже проделано и все успешно.

#236964
Iskatel написал:
Нужно ли для этого останавливать систему и грузиться с LiveCD?

в общем случае да. А вообще - зависит от того, какие сервисы сейчас работают.

#236966
drBatty написал:

в общем случае да. А вообще - зависит от того, какие сервисы сейчас работают.

Если корень смонтировать куда-нибудь в /mnt то без разницы на сервисы.

#237011
newzenon написал:
Если корень смонтировать куда-нибудь в /mnt то без разницы на сервисы.

корень не перемонтировать в /mnt/ на живой системе.

#237013
drBatty написал:
[quote=newzenon]Если корень смонтировать куда-нибудь в /mnt то без разницы на сервисы.

корень не перемонтировать в /mnt/ на живой системе.[/quote]
Док, я от тебя иногда в шоке.... Перемонтирую, и легко, лови:

text
$mount
rootfs on / type rootfs (rw)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=10240k,nr_inodes=490667,mode=755)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
/dev/sdb2 on / type reiserfs (rw,noatime,notail)
rc-svcdir on /lib64/rc/init.d type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1024k,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
cgroup_root on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755)
openrc on /sys/fs/cgroup/openrc type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/lib64/rc/sh/cgroup-release-agent.sh,name=openrc)
blkio on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
bfqio on /sys/fs/cgroup/bfqio type cgroup (rw,nosuid,nodev,noexec,relatime,bfqio)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
none on /dev/shm type tmpfs (rw,relatime)
/dev/sdb6 on /usr/portage type reiserfs (rw,noatime,notail)
/dev/sda5 on /mnt/storage type ext4 (rw,commit=0)
gvfs-fuse-daemon on /home/zenon/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=zenon)
$mkdir /mnt/rmnt
$mount -v /dev/sdb2 /mnt/rmnt
mount: вы не указали тип файловой системы для /dev/sdb2
       я попробую тип reiserfs
/dev/sdb2 on /mnt/rmnt type reiserfs (rw)
$ls /
bin/   dev/  home/  lib32/  media/  opt/   root/  sys/  usr/
boot/  etc/  lib@   lib64/  mnt/    proc/  sbin/  tmp/  var/
$ls /mnt/rmnt
bin/   dev/  home/  lib32/  media/  opt/   root/  sys/  usr/
boot/  etc/  lib@   lib64/  mnt/    proc/  sbin/  tmp/  var/
#237022
newzenon написал:
Док, я от тебя иногда в шоке.... Перемонтирую, и легко, лови:

ты не перемонтировал, ты смонтировал один файл к двум каталогам сразу. Можно и попроще:
[console]root@dt:/tmp# ll d[123]
d1:
итого 0
-rw-r--r-- 1 root root 0 Мар 12 18:20 f

d2:
итого 0
-rw-r--r-- 1 root root 0 Мар 12 18:20 f2

d3:
итого 0
-rw-r--r-- 1 root root 0 Мар 12 18:20 f3
root@dt:/tmp# mount --bind d1 d2
root@dt:/tmp# mount --bind d1 d3
root@dt:/tmp# ll d[123]
d1:
итого 0
-rw-r--r-- 1 root root 0 Мар 12 18:20 f

d2:
итого 0
-rw-r--r-- 1 root root 0 Мар 12 18:20 f

d3:
итого 0
-rw-r--r-- 1 root root 0 Мар 12 18:20 f
[/console]
тут d1 смонтирован на d2 и на d3.
[console]root@dt:/tmp# mount
<skip>
/tmp/d1 on /tmp/d2 type none (rw,bind)
/tmp/d1 on /tmp/d3 type none (rw,bind)
[/console]
Проблемы возникнут если например у тебя в корне MySQL - забекапить сразу ты её не сможешь, а значит бекап будет несогласованный, и БД битая (обычно её можно восстановить, но не всегда). Однако, если остановить mysqld, то бекапить вполне можно БД(если ВСЁ совпадает). Это относится и к другим демонам. Состояние некоторых демонов сохранить принципиально невозможно (например сетевые демоны, и демон времени). Короче проще всего всё остановить, и загрузится с LiveCD.

#237025

Ну с БД да ... тормознуть надо, осталные не так принципиально.
ы. А вот --bind с корнем никак.

#237042
newzenon написал:
Ну с БД да ... тормознуть надо, осталные не так принципиально.

ну смотря что. Может и принципиально. Откуда нам-то знать? :o

newzenon написал:
ы. А вот --bind с корнем никак.

ЩИТО?
[console]root@dt:/tmp# mount --bind / d2
root@dt:/tmp# mount
<skip>
/ on /tmp/d2 type none (rw,bind)
[/console]
только смысла в этом нету никакого. Или ты свой sda2 пытался забиндеть? Это нельзя. bind монтирует только каталоги. А sda2 это файл (блочное специальное устройство). Его как все устройства нужно без bind монтировать.

#237043

да, вот /usr можно перемонтировать в ro, а потом спокойно забекапить, как и любой другой раздел. Кроме корня. Хотя может и можно поизвращаться, но мне лень.

#237052
drBatty написал:

bind монтирует только каталоги.

Ну а я про что?

#237123
drBatty написал:
Проблемы возникнут если например у тебя в корне MySQL - забекапить сразу ты её не сможешь, а значит бекап будет несогласованный, и БД битая (обычно её можно восстановить, но не всегда). Однако, если остановить mysqld, то бекапить вполне можно БД(если ВСЁ совпадает). Это относится и к другим демонам. Состояние некоторых демонов сохранить принципиально невозможно (например сетевые демоны, и демон времени). Короче проще всего всё остановить, и загрузится с LiveCD.

Вопрос, когда грузишься в однопользовательском режиме демоны не запускаются? Я тут загрузился с параметром single и запустил:

text
tar --create --one-file-system --file=/home/rootbackup.tar /

Если верить ману, --one-file-system должна исключать каталоги, в которые примонтированы другие файловые системы.
В процессе получил ошибки:

text
tar: Removing leading '/' from member names
tar: Removing leading '/' from hard link targets
tar: /var/run/dbus/system_bus_socket: socket ignored
tar: /var/run/acpid.socket: socket ignored

Вот думаю, если загрузиться в чистом bush (с параметром init=/bin/bash) то прокатит или только с LiveCD?

#237124
Iskatel написал:
В процессе получил ошибки:

Это не ошибки.

#237186
Iskatel написал:
Вопрос, когда грузишься в однопользовательском режиме демоны не запускаются?

это зависит от их run level'а. Большинство демонов не запускается, но в разных дистрах и у разных админов может быть иначе.

Iskatel написал:
tar: Removing leading '/' from member names

это ошибка в команде. Не надо / ставить, вы таким архивом можете грохнуть ВСЮ систему того, кто это будет распаковывать. Tar первый слеш потому удаляет.

Iskatel написал:
tar: /var/run/dbus/system_bus_socket: socket ignored

это не просто файл, а сокет. Через него происходит передача данных в Сеть/из Сети. Понятно, что архивировать его нет смысла.

Iskatel написал:
Вот думаю, если загрузиться в чистом bush (с параметром init=/bin/bash) то прокатит

нет.

Lupo Alberto написал:
Это не ошибки.

это исправленные ошибки оператора.

Войдите или зарегистрируйтесь, чтобы ответить.