Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> Файловая система —> Pax

Pax - создание архивов и копирование иерархии директорий.

Автор: Raven2000.


Эта замечательная утилита, является частью системы FreeBSD и обладает неплохими возможностями. Pax умеет вносить файлы в любые архивы (указанные флагом -x) и модифицировать, а так же копировать иерархию директорий. Иногда возникает необходимость перенести систему на другой жесткий диск, например, когда старый диск начал "сыпаться" или нашли другой более вместительный диск. =) Рассмотрим ситуацию, когда на жестком диске появляются сбойные секторы.

Список:

  • Копирование иерархии директорий (Перенос FreeBSD на другой HDD)

    Перенос системы на другой HDD
  • Иногда возникает необходимость перенести систему на другой жесткий диск например когда старый "посыпался" или нашли другой HDD попросторнее =) Возьмем ситуацию с посыпавшимся HDD.

    1) Подключаем новый жёсткий диск (емкость у нового диска такая же или больше того, который начал осыпаться) далее определяем его в BIOS и загружаемся.

    1.1) Для корректного переноса, FreeBSD необходимо перевести в single mode с помощью команды shutdown now или при загрузке выбрать в загрузчике single mode.

    2. Посмотрим, как FreeBSD определила новый диск. dmesg -a | grep ad (в нашем случае это ad6).

    2.1) Создаем директории /mnt/root (корневой раздел "/"), /mnt/var, /mnt/usr
    # mkdir /mnt/root /mnt/var /mnt/usr
    

    swap и /tmp нам не потребуются.

    2.2) Запускаем от рута /usr/sbin/sysinstall, там выбираем меню Configure, затем Fdisk,и наш диск ad6. Создаём slice емкостью равной всему диску, затем нажимаем клавишу "A" (A = Use Entire Disk), далее нажимаем "S", наш диск станет загрузочным (S = Set Bootable). Для записи измененной информации нажимаем "W" (W = Write Changes). При выходе из fdisk (клавиша "Q"), нам зададут вопрос, установить ли стандартный загрузчик или загрузчик FreeBSD. Выбираем стандартный загрузчик (no boot manager).

    2.3) Выбираем опцию Label, затем выберем наш жесткий диск ad6 нажимаем "C" (C = Create), тем самым мы создадим разделы нужного размера (совпадающий по размеру со старыми или больше), для переносимых разделов, в том числе swap и /tmp. Затем, чтобы sysinstall смог отформатировать и сразу смонтировать разделы, надо каждому разделу (исключая swap с /tmp) указать свою точку монтирования, и нажать клавишу "W" (W = Write). После этого sysinstall создаст разделы и примонтирует в /mnt/root(корневой раздел "/"), /mnt/var, /mnt/usr.

    Внимание: Новая корневой раздел должен быть буквой "a" на конце. Так же следует записать буквы для остальных разделов на новом жестком диске.

    2.4) От рута выполняем следующие команды:
    # cd / && pax -p eme -X -rw . /mnt/root 
    # cd /var && pax -p eme -X -rw . /mnt/var
    # cd /usr && pax -p eme -X -rw . /mnt/usr
    

    /tmp переносить ненужно, о чем говорилось выше. Теперь разделы скопированы на новый диск. Без флага "-v" будут показанны файлы которые не удалось скопировать, то есть битые (которые находились на сбойных участках)

    2.5) Командой df -h проверим, соответствуют ли буквы старых и новых разделов. Если нет, то меняем на новом диске fstab, который соотвественно находится в /mnt/root/etc/fstab и изменяем буквы на нужные. Например, старый жёсткий диск в данный момент primary master (ad4), а новый - secondary master (ad6), старый /usr находится на /dev/ad4s1f, а новый - /dev/ad6s1f, в таком случае, ничего менять не надо, так как когда мы переставим новый винчестер на место старого, система опять будет /dev/ad0s1f. Если же старый /usr стал, скажем, /dev/ad6s1g, в /mnt/root/etc/fstab следует изменить расположение ad4s1f на ad4s1g.

    2.6) Выключаем компьютер устанавливаем новый жёсткий диск шлейфом вместо старого, и загружаем FreeBSD. Если не загружается то ошибка в /etc/fstab неправильная буква или в мозгах..

  • Литература
    1) man pax
    2) Основы технологии резервного копирования

    ===
    P.S. Внесение в архив и т.п. допишу, когда руки дойдут =)



    размещено: 2008-07-20,
    последнее обновление: 2008-07-20,
    автор: Raven2000


    Andrei, 2008-07-21 в 10:42:04

    sysinstall не даст создать раздел с "буквой а" в конце, если точка монтирования отлична от /
    те сначала прийдется создать новый / а потом поменять точку монтирования на /mnt/root

    Raven2000, 2008-07-21 в 11:58:35

    Если без флейма то это статья написана сразу при работе pax "и кто там чего может\возможно не дал бы" у меня нету все дало и заработало =)

    Serge, 2008-08-08 в 22:10:36

    Здравствуйте.

    Всегда когда звонишь провайдеру по поводу интернета то ответ как правило - "У нас все работает" и тут только и остаеться что сказать "А нельзя ли, что бы и у меня все работало?". Статья написана безобразно, если ей следовать от и до то невозможно будет создать директории  тк система смонтирована только для чтения.
    Я полностью согдасен с Андреем. Необходимо уделять больше внимания деталям.

    Raven2000, 2008-08-09 в 19:31:56

    to Serge
    Вы туда пишете? =)
    1. что Andrei, что и вы даже не пробовали, а говорите не работает и не даст и т.п.
    2. Я ее специально 2 раза сам на себе проверил так сказать по шагам сделал все то, что написал.
    3. Давайте детально, что можно улучшить с вашей стороны конкретнее.
    ==
    Для остального есть опеннет.

    3t0n, 2009-04-17 в 20:22:19

    Я согласен с Andrei, я так же делал, он указал мне что корень "d" а не "a", удалил, создал смонтировав в / стал "a" нажал m сменил точку монтирования

    targonium, 2009-09-11 в 18:49:23

    Спасибо за статью, всё никак не получалось монтировать. Пошёл немного по другому и у меня ура! вышло !
    1.Загрузился с live CD frenzy.
    2.В sysinstall создал на новом винте ad1 разделы совпадающие по буквам с разделами исходного. Но чуть побольше по размеру.
    3. Получилось так ad0s1a > ad1s1a и т.д.
    4. дальше смонтировал каждый раздел из /dev/ad0s1a в /mnt/ad0s1a и т.д.
    5. Применил cd /mnt/ad0s1a && pax -p eme -X -rw . /mnt/ad1s1a
    6. То же в отношении других разделов.
    7. Отмонтируем\выключаем машину\убираем исходный винт\включаем.

    Roman, 2012-01-30 в 19:49:35

    Single User MODE решение проблем с буквой А
    Читайте внимательно!



  •  

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.041 секунд
    Из них PHP: 20%; SQL: 80%; Число SQL-запросов: 77 шт.
    Исходный размер: 22285; Сжатая: 7084