Мой сайт
Главная | Каталог статей | Регистрация | Вход
Суббота
20.04.2024
16:54
Приветствую Вас Гость | RSS
Главная » Статьи » Linux и Unix

Перенос FreeBSD на другой жесткий диск

Понадобилось тут мне перенести одну машинку с freeBSD на слегка пожирнее дисочек, вот и появилась данная статья :)

В данном случае, можно было бы воспользоваться клонированием уже существующим программным raidом, но мы пошли другим путем, типа что бы правильнее :)

Существует старый и новый метод перенесения ОС на другой винт:
1. С помощью dump и restore (использовалась на более старых версиях ОС)
2. С помощью pax (новый, довольно таки шустрый метод)

Первым способом, это делается так:

1. Подключаем новый жёсткий диск в систему с FreeBSD (/dev/ad6s1)

2. Создаём временные папку и подпапки:

# mkdir /backup
# mkdir /backup/root
# mkdir /backup/usr
# mkdir /backup/var
# mkdir /backup/tmp

3. С помощью /stand/sysinstall разбиваем новый диск на разделы так же как это сделано на старом. Убедитесь, что /dev/ad0s1a соответствует /dev/ad6s1a – размер /dev/ad6s1a может
быть большим чем на /dev/ad0s1a. PS. Когда я такое делал первый раз – долго не мог понять, почему у меня не создается слайс с разделом "а”, то есть для примера /dev/ad6s1a. Открою секрет, нужно разбить его с указанием в настоящий корень системы, только НЕ ПРИМЕНЯЙТЕ значения, после этого нажмите "m” и перемонтируйте в директорию для бекапа (указанную выше – /backup/root)

4. Загружаемся в single user

5. Монтируем разделы:

# mount /dev/ad6s1a /backup/root
# mount /dev/ad6s1d /backup/var
# mount /dev/ad6s1e /backup/usr
(если есть ещё какие разделы - указываем здесь, по принципу)

6. Переносим систему:


# ( dump -0f - / ) | ( cd /backup/root ; restore -rf - )
# ( dump -0f - /var ) | ( cd /backup/var ; restore -rf - )
# ( dump -0f - /usr ) | ( cd /backup/usr ; restore -rf - )

7. Размонтируем
# umount /backup/root
# umount /backup/var
# umount /backup/usr

8. Включаем Soft Updates

# tunefs -n enable /dev/ad6s1a
# tunefs -n enable /dev/ad6s1d
# tunefs -n enable /dev/ad6s1e

Выключаем питание сервера:

9.# halt -p

Вот теперь можно убрать из системы старый жёсткий диск, а на его место поставить новый.

Новым способом, это делается так:

Делаем, по пунктам первого способа, до 3го включительно. Только когда разбиваете диск, все указываете изначально в /backup/*, а только root, по заметке приведённой выше. И монтируем прямо там. PS. Обратите внимание, что бы вы не примонтировали разделы нового винта вместо работающей системы, вы должны примонтировать именно в подразделы директории /backup/.

# cd /backup/

Устанавливаем флаг kern.geom.debugflags в значение 16, это разрешит запись в таблицу партиций при работающей системе.

# sysctl kern.geom.debugflags=16
kern.geom.debugflags: 0 -> 16

Проверяем, что у нас разделы подмонтированы, если нет – монтируем. (пункт 5, выше)
Проверяем:

# mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1e on /usr (ufs, local, soft-updates)
/dev/ad0s1d on /var (ufs, local, soft-updates)
/dev/ad6s1a on /mnt/backup/root (ufs, local, soft-updates)
/dev/ad6s1e on /mnt/backup/usr (ufs, local, soft-updates)
/dev/ad6s1d on /mnt/backup/var (ufs, local, soft-updates)

Делаем backup:

# cd /; pax -p eme -X -rw . /mnt/backup/root;
# cd /var; pax -p eme -X -rw . /mnt/backup/var;
# cd /usr; pax -p eme -X -rw . /mnt/backup/usr;

Команда pax предназначена для записи и чтения файловых архивов, а так же для копирования директорий. Параметр -p задаёт некоторые опции копирование. В частности «e» означает «сохранять всё» (ID пользователя, группы). Флаг -X означает что при копировании указанной папки не директории имеющие разные идентификаторы устройств (device ID) не будут игнорироваться. Флаг -rw (использованный формат: pax -r -w [file ...] directory) означает чтение из file и запись их в directory.

Выполняем команду df -h смотрим что бы были совпадения размерах и метках устройств:

# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 1.9G 384M 1.4G 21% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1d 39G 4.8G 31G 14% /usr
/dev/ad0s1e 7.7G 547M 6.6G 7% /var
procfs 4.0K 4.0K 0B 100% /proc
/dev/ad6s1a 4.2G 384M 3.8G 1% /backup/root/
/dev/ad6s1d 220G 4.8G 215G 2% /backup/usr
/dev/ad6s1e 8.2G 544M 7.7G 1% /backup/var

Теперь такой ньюансик. Если винт остается на это шлейфе, то нужно подправить /backup/root/etc/fstab, а если нет – то просто выключаемся и меняем винт, снова включаем.
И то что на новом разделе (/backup/var) не всё скопировалось – не страшно, это же VAR и мы это делали при рабочей системе..

Поздравляю, вы на новом винте, и я тоже ;)



Источник: http://noted.org.ua/?p=644
Категория: Linux и Unix | Добавил: SAM (22.07.2010)
Просмотров: 2744 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Категории раздела
Мои статьи [0]
Linux и Unix [47]
Все про Linux и Unix
Windows [2]
Все про Windows
Администрирование [5]
Все для Системного администратора
Cisco [2]
Мой опыт работы с кисками
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Copyright MyCorp © 2024
    Бесплатный конструктор сайтов - uCoz