Такой вопрос. Как сделать бэкап системного раздела (того что смонтирован в /) в тарбал? Нужно ли для этого останавливать систему и грузиться с LiveCD?
Бэкап системного раздела
Iskatel, лучше бы, конечно, загрузиться с «живого» диска, но можно и так, исключив, разумеется, разделы с псевдофайловыми системами.
Большое значение, на мой взгляд, имеет и предназначение целевого компьютера — то, что можно сделать на десктопе, на сервере не приветствуется.
Можно корень примонтировать на живой системе куда-нибудь и затарить оттуда.
Можно просто tar'ом не раз уже проделано и все успешно.
Нужно ли для этого останавливать систему и грузиться с LiveCD?
в общем случае да. А вообще - зависит от того, какие сервисы сейчас работают.
в общем случае да. А вообще - зависит от того, какие сервисы сейчас работают.
Если корень смонтировать куда-нибудь в /mnt то без разницы на сервисы.
Если корень смонтировать куда-нибудь в /mnt то без разницы на сервисы.
корень не перемонтировать в /mnt/ на живой системе.
[quote=newzenon]Если корень смонтировать куда-нибудь в /mnt то без разницы на сервисы.
корень не перемонтировать в /mnt/ на живой системе.[/quote]
Док, я от тебя иногда в шоке.... Перемонтирую, и легко, лови:
$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/
Док, я от тебя иногда в шоке.... Перемонтирую, и легко, лови:
ты не перемонтировал, ты смонтировал один файл к двум каталогам сразу. Можно и попроще:
[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.
Ну с БД да ... тормознуть надо, осталные не так принципиально.
ы. А вот --bind с корнем никак.
Ну с БД да ... тормознуть надо, осталные не так принципиально.
ну смотря что. Может и принципиально. Откуда нам-то знать? :o
ы. А вот --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 монтировать.
да, вот /usr можно перемонтировать в ro, а потом спокойно забекапить, как и любой другой раздел. Кроме корня. Хотя может и можно поизвращаться, но мне лень.
bind монтирует только каталоги.
Ну а я про что?
Проблемы возникнут если например у тебя в корне MySQL - забекапить сразу ты её не сможешь, а значит бекап будет несогласованный, и БД битая (обычно её можно восстановить, но не всегда). Однако, если остановить mysqld, то бекапить вполне можно БД(если ВСЁ совпадает). Это относится и к другим демонам. Состояние некоторых демонов сохранить принципиально невозможно (например сетевые демоны, и демон времени). Короче проще всего всё остановить, и загрузится с LiveCD.
Вопрос, когда грузишься в однопользовательском режиме демоны не запускаются? Я тут загрузился с параметром single и запустил:
tar --create --one-file-system --file=/home/rootbackup.tar /Если верить ману, --one-file-system должна исключать каталоги, в которые примонтированы другие файловые системы.
В процессе получил ошибки:
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?
В процессе получил ошибки:
Это не ошибки.
Вопрос, когда грузишься в однопользовательском режиме демоны не запускаются?
это зависит от их run level'а. Большинство демонов не запускается, но в разных дистрах и у разных админов может быть иначе.
tar: Removing leading '/' from member names
это ошибка в команде. Не надо / ставить, вы таким архивом можете грохнуть ВСЮ систему того, кто это будет распаковывать. Tar первый слеш потому удаляет.
tar: /var/run/dbus/system_bus_socket: socket ignored
это не просто файл, а сокет. Через него происходит передача данных в Сеть/из Сети. Понятно, что архивировать его нет смысла.
Вот думаю, если загрузиться в чистом bush (с параметром init=/bin/bash) то прокатит
нет.
Это не ошибки.
это исправленные ошибки оператора.