Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Русификация
  COM-порт
  Монтирование образов
  dd
  burncd
  Консоль
  polling
  redirect_port
  wolf3d
  W.O.L.
  HDD->HDD
  bsdstats
  pdf в html
  monitord
  monit
  dvd в avi
  LAM
  Контроль провайдера
  pppd
  ru man
  geom_uzip
  colorize
  nettop
  немного о ssh
  установка по сети
  ClamAV mirror
  BlueTooth
  WiFi WPA
  iftop
  iPod
  2 CD -> 1 DVD
  ipcalc
  LACP и VLAN
  FFS из-под WinXP
  queues
  NFS & Win2k3
  Dynamic DNS
  ProFTPD+iconv
  deltup, xdelta, bdelta
  Приглашение csh/tcsh
  настрока bash
  Lan over Bluetooth
  pppoe
  метаданные exif
  dd : бэкапируем windows
  mozilla autoconfig
  Proxy Auto Configuration
  NNTP сервер
  Rinetd
  ISO DVD FreeBSD
  my disc1
  sftp+chroot
  SendXMPP
  APCUPSD
  Видеонаблюдение
  Настройка аудиоплеера на ximp3
  HDD(mbr) -> HDD(gpt)
  mc 4.6.2
  Динамический DNS
  axel
  LiveCD
  NAS на MPD
  backup конфигов на почту
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Мелочи —> HDD->HDD

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

Автор: lissyara.


    Появилась необходимость перенести работающую систему - почтовый сервер (FreeBSD4.11) с одного диска на другой. На старом был массив, софтверный RAID организованный при помощи atacontrol, и в нём отдуплился один диск. Такого же не было, купили два новых, большего размеру, посему на тестовой машине поставил эксперимент по переносу  меньшего диска на больший. Его листинг и выкладываю, с комментариями.
   Имеем один диск в системе:
/usr/home/lissyara/>df -h
Filesystem    Size   Used  Avail Capacity  Mounted on
/dev/ad0s1a   504M    72M   391M    16%    /
/dev/ad0s1e   2.0G    14K   1.8G     0%    /tmp
/dev/ad0s1f    20G   3.7G    14G    21%    /usr
/dev/ad0s1g   5.1G   6.1M   4.6G     0%    /var
procfs        4.0K   4.0K     0B   100%    /proc

/usr/home/lissyara/>dmesg | grep "^[a][t|d][a|0-9]"
atapci0: <VIA 8235 ATA133 controller> port 0xfc00-0xfc0f at device 17.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
ad0: 29325MB <Maxtor 6E030L0> [59582/16/63] at ata0-master UDMA133
/usr/home/lissyara/>

После установки второго на второй канал ATA получаем:
/usr/home/lissyara/>dmesg | grep "^[a][t|d][a|0-9]"
atapci0: <VIA 8235 ATA133 controller> port 0xfc00-0xfc0f at device 17.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
ad0: 29325MB <Maxtor 6E030L0> [59582/16/63] at ata0-master UDMA133
ad2: 190782MB <ST3200822A> [387621/16/63] at ata1-master UDMA100
/usr/home/lissyara/>

Диск разбиваем при помощи /stand/sysinstall, можно руками - но это не для слабонервных, я делал один раз в жизни, но впечатлений хватило надолго. Не забываем сделать раздел активным (загрузочным)! Прикол в следующем, если для будущего корневого раздела, поставить точку монтирования отличную от "/" то он не присваивает разделу букву "a". Нужно проделать такие комбинации - установить при создании раздела точку монтирования "/", затем поменять её клавишей "M".
Disk: ad2       Partition name: ad2s1   Free: 389668226 blocks (190267MB)

Part      Mount          Size Newfs   Part      Mount          Size Newfs
----      -----          ---- -----   ----      -----          ---- -----
ad2s1a    /             512MB UFS   Y

Получится так:
Disk: ad2       Partition name: ad2s1   Free: 389668226 blocks (190267MB)

Part      Mount          Size Newfs   Part      Mount          Size Newfs
----      -----          ---- -----   ----      -----          ---- -----
ad2s1a    /mnt/root     512MB UFS   Y

Потом второй прикол, то, что если сразу все разделы настругать, то он не разобьёт диск, ругнётся на какую-то ошибку. Посему, записываем изменения буковкой "W", выходим, заходим снова в /stand/sysinstall и делаем остальные разделы. Получается примерно так (корневой раздел не надо по второму разу монтировать, он уже разбит и смонтирован)
Disk: ad2       Partition name: ad2s1   Free: 0 blocks (0MB)

Part      Mount          Size Newfs   Part      Mount          Size Newfs
----      -----          ---- -----   ----      -----          ---- -----
ad2s1a    <none>       512MB  UFS   Y
ad2s1b    swap         2048MB SWAP
ad2s1e    /mnt/tmp     2048MB UFS+S Y
ad2s1f    /mnt/usr   153600MB UFS+S Y
ad2s1g    /mnt/var    32571MB UFS+S Y

Снова сохраняем изменения нажатием "W", выходим, и имеем такой расклад:
/usr/home/lissyara/>df -h
Filesystem    Size   Used  Avail Capacity  Mounted on
/dev/ad0s1a   504M    72M   391M    16%    /
/dev/ad0s1e   2.0G    18K   1.8G     0%    /tmp
/dev/ad0s1f    20G   3.7G    14G    21%    /usr
/dev/ad0s1g   5.1G   6.2M   4.6G     0%    /var
procfs        4.0K   4.0K     0B   100%    /proc
/dev/ad2s1a   504M   2.0K   464M     0%    /mnt/root
/dev/ad2s1e   2.0G   2.0K   1.8G     0%    /mnt/tmp
/dev/ad2s1f   148G   2.0K   136G     0%    /mnt/usr
/dev/ad2s1g    31G   2.0K    29G     0%    /mnt/var

Все названия записываем, или копируем экран. Перезагружаемся в однопользовательский режим, для чего надо жмякнуть `ESC` на отсчёте 10 секунд, и ввести:
boot -s

После загрузки монтируем разделы, описанные в /etc/fstab, такой командой:
# mount -a

Затем монтируем разделы, на которые будем копировать инфу (например /tmp монтировать не обязательно, обычно там ничё нету, и вообще он при перезагрузках у меня очищается.)
# mount /dev/ad0s1a /mnt/root
# mount /dev/ad2s1f /mnt/usr
# mount /dev/ad2s1g /mnt/var

После чего дампим инфу и переносим (каюсь, я это делал не в однопользовательском режиме, - лень было переписывать все команды руками, да и система не боевая, на рабочем серваке тоже буду делать в однопользовательском)

# ( dump -0f - / ) | ( cd /mnt/root ; restore -rf - )
  DUMP: Date of this level 0 dump: Thu Aug 10 17:59:02 2006
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/ad0s1a (/) to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 74881 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
expected next file 21899, got 21898
  DUMP: DUMP: 75574 tape blocks
  DUMP: finished in 11 seconds, throughput 6870 KBytes/sec
  DUMP: DUMP IS DONE
#
#
#
# ( dump -0f - /var ) | ( cd /mnt/var ; restore -rf - )
  DUMP: Date of this level 0 dump: Thu Aug 10 17:59:25 2006
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/ad0s1g (/var) to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 6638 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 7512 tape blocks
  DUMP: finished in 5 seconds, throughput 1502 KBytes/sec
  DUMP: DUMP IS DONE
#
#
#
# ( dump -0f - /usr ) | ( cd /mnt/usr ; restore -rf - )
  DUMP: Date of this level 0 dump: Thu Aug 10 17:59:55 2006
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/ad0s1f (/usr) to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 3957963 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: 61.22% done, finished in 0:03
  DUMP: 99.59% done, finished in 0:00
  DUMP: DUMP: 4080794 tape blocks
  DUMP: finished in 636 seconds, throughput 6416 KBytes/sec
  DUMP: DUMP IS DONE
#

Если разделы совпадают, по названиям, то ничё не делаем, если же не совпадают то вначале правим файл /etc/fstab. После чего даём такие команды:
# sync
# umount /mnt/root/
# umount /mnt/usr/
# umount /mnt/var/
# shutdown -h now

Выключаем питание, убираем старый хард, на его место подрубаем новый. Загружаемся.
Смотрим, чё получилось:
/usr/home/lissyara/>df -h
Filesystem    Size   Used  Avail Capacity  Mounted on
/dev/ad0s1a   504M    72M   391M    16%    /
/dev/ad0s1e   2.0G  10.0K   1.8G     0%    /tmp
/dev/ad0s1f   148G   3.8G   132G     3%    /usr
/dev/ad0s1g    31G   6.8M    29G     0%    /var
procfs        4.0K   4.0K     0B   100%    /proc
/usr/home/lissyara/>

Всё нормально. У меня корректно перенеслось всё даже в многопользовательском режиме, но это тестовая машина, и хотя на ней стит куча ПО, с ней кроме меня никто не работает. Посему не надо на рабочих серваках так делать. Надо в однопользовательском!



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=8136.

размещено: 2006-08-11,
последнее обновление: 2006-08-11,
автор: lissyara

оценить статью:

Andrey, 2006-08-23 в 4:10:29

Лет десять назад на линухе это делалось простой но до ужаса удобной утилиткой cpio...

GeT, 2006-08-23 в 10:14:12

Делал аналогично, только использовал не DUMP, а просто копировал все командой PAX.

playnet, 2006-11-14 в 22:21:30

Зачем вообще дампом копировать.. Достаточно поставить новый диск, загрузиться с СД, диск разметить, поставить базовую часть системы, а затем просто поверх все скопировать и обновить при необходимости загрузчик. Все.

npanop, 2006-11-15 в 8:43:01

cd /
find -mount -print | cpio -pmvdu <mount point>

Dimast, 2006-11-16 в 1:56:01

На мой взгляд лучше этой статьи еще не придумали.

http://www.opennet.ru/base/sys/dup_freebsd.txt.html

Snatch, 2006-11-16 в 10:55:38

есть такая программа COPYR.DMA http://copyr.tetroniks.ru/download/copyrR13.zip , она под DOS (извините). так вот ей совершенно пофигу, что с чего копировать, лишь бы харды рабочие были, она посекторно копирует, поэтому выходит чудный клон

PREVED, 2007-01-13 в 23:21:52

Неоригинально. И заколебали уже :)

ans, 2007-06-07 в 7:50:28

Спасибо помогло :)

silentshade, 2007-09-07 в 0:53:28

автору спасибо, весь процесс занимает 10 минут (не считая времени копирования)

WarWar, 2007-11-07 в 14:05:46

оЧипятка вышла...
# mount /dev/ad0s1a /mnt/root
# mount /dev/ad2s1f /mnt/usr
# mount /dev/ad2s1g /mnt/var

OLD, 2007-11-13 в 13:36:14

В портах есть прога clonehdd. :)

gruz0, 2008-02-16 в 12:31:38

Клонировал через pax :-)

nero777, 2008-02-17 в 13:15:32

молодец! как я раньше не знал
о твоём сайте. всё с толком и разумно.
только надо включать foot shooting!
спасибо из Киева.

nero777, 2008-02-17 в 13:22:50

кстати,для клонирования постоянно
пользуюсь Acronis Boot TIS 9.1.3677
с сетевой поддержкой.Только немного
подправить кое-что.Лучшего не встречал.

dserga, 2008-05-26 в 21:42:33

Маленькое замечание, если хотите перелить копию с работающей системы и не получить залоченных файлов, которые не сдампились (скажем работающая база mysql), то надо так:
dump -0Lf, и далее по тексту все тоже самое. Тогда вы будете уверены, что все сдампилось путем.

ln, 2008-11-06 в 12:43:24

dump -a0Lf - юзать лучше.

COPYR.DMA, делает тоже что и dd? - для конкретной задачи не подходит.

я sysinstall-ом только нарезаю диски на слайсы, так как считать сектора в fdisk долго и лениво, для всего остального sysinstall хреново приспособлен, ИМХО
после нарезания слайсов:
bsdlabel -w /dev/ad2s1
bsdlabel -e /dev/ad2s1
newfs -O2 -U /dev/ad2s1a
mount /dev/раздел /куданадо
cd /куданадо && dump -a0Lf- /чтонадо|restoty -rf-
vim /куданадо/etc/fstab
boot0cfg -Bs1 /dev/ad2
bsdlabel -B /dev/ad2s1

кстати юзайте -L в newfs, glabel избавляет от головных болей перетыкания винта в другую дырку контроллера.

Sweeper_jr, 2008-11-20 в 13:04:00

Спасибо Лис!
Получилось почти с первого раза - не забывайте про правку fstab на новом винте, буквы слайсов обычно не совпадают !

Algor, 2009-03-14 в 22:55:32

К сожалению сейчас проверить не могу, но насколько я помню диск можно разбивать так:

fdisk -BI /dev/ad0
cat << EOF > labels
a: 500M 0 4.2BSD
b: 1G * swap
e: 2G *
g: 5G *
f: * *
EOF
bsdlabel -RB ad0s1 labels
newfs ad0s1a
newfs ad0s1e
newfs ad0s1f
newfs ad0s1g

Algor, 2009-03-14 в 23:06:00

К сожалению сейчас проверить не могу, но насколько я помню диск можно разбивать и не считая сектора:
fdisk -BI /dev/ad0
cat << EOF > labels
a: 500M 0 4.2BSD
b: 1G   * swap
c: *    * unused
e: 2G   * 4.2BSD
f: *    * 4.2BSD
g: 5G   * 4.2BSD
EOF
bsdlabel -RB ad0s1 labels
newfs ad0s1a
newfs ad0s1e
newfs ad0s1f
newfs ad0s1g

MIR, 2009-03-31 в 23:30:21

В статье не написано, но! После создания ad2s1a (до второго запуска sysinstall) нужно отмонтировать его из /mnt/root, иначе ничего не получится )))

MIR, 2009-03-31 в 23:34:29

Уточнение. Если не отмонтируете, вы не сможете "нарезать" остальные партиции.

Превед, 2009-05-08 в 1:18:11

Акронис, два клика мышки и всё.

lissyara, 2009-05-11 в 0:55:18

A давно оно научилось UFS понимать?

MobileSfinks, 2009-09-03 в 11:21:03

Лис пасиб за статью. Единственное тут человек правильно написал я на это напоролся - было бы неплохо поправить:

MIR, 2009-03-31 в 23:30:21
В статье не написано, но! После создания ad2s1a (до второго запуска sysinstall) нужно отмонтировать его из /mnt/root, иначе ничего не получится )))
MIR, 2009-03-31 в 23:34:29
Уточнение. Если не отмонтируете, вы не сможете "нарезать" остальные партиции.

MobileSfinks, 2009-09-03 в 12:08:27

Ещё момент:
Диск взял не новый, и до этого он был размечен под NTFS.
В итоге sysinstall некорректно добавлял слайс и партишены. После первого перезапуска у меня выдавало тип файловой системы ntfs/"чёто-там".

Накопал такую вещь:
dd if=/dev/zero of=/dev/ad1 bs=512 count=32
fdisk -BI ad1

ставим BSDметку на слайс:
dd if=/dev/zero of=/dev/ad1s1 bs=512 count=32
bsdlabel -w -B ad1s1

После этого всё сразу нормально разбилось и разметилось в sysinstall

(оригинал статьи из которой взято:

Тут

DemonSKED, 2009-11-15 в 13:33:08

Мда, если не в сингл моде то мускул не может создать сокет, нгинкс не пашет, так можно долго продолжать.

lissyara, 2009-11-15 в 13:46:30

kldload hand.ko
kldunload ass.ko

DemonSKED, 2009-11-17 в 13:47:10

Ну лис, это не смешно. На 7.2 в многопользовательском не получилось нормально перенести. В однопользовательском все перенеслось и работает.

hREX, 2010-07-04 в 18:41:38

Не понимаю, почему не смонтировать например так:
# mount /dev/ad2s1a /mnt
# mount /dev/ad2s1f /mnt/usr
# mount /dev/ad2s1g /mnt/var

yurkinson, 2010-07-12 в 17:40:44

Если делать клона, то делаю этим:
/usr/ports/sysutils/clonehdd

vlad_ber, 2010-08-19 в 12:32:18

clonehdd не корректно скопировало разделы.
У меня было два bsd раздела, первый с системой, второй для данных. Программа на новом диске создала ОДИН bsd раздел и второй раздел исходного диска сделала в виде слайса.
В конечном итоге получилась рабочая система, но все же полностью доверять утилите clonehdd я бы не стал.

108380810, 2011-04-11 в 15:43:57

Спасибо за статью, только что проделал на своем сервере операцию по переносу FreeBSD 6.2 со старого и маленького винта на новый большой! Все завелось без проблем!

RAGNAR, 2012-06-12 в 17:37:18

этот способ подходит для переноса RAID 1 с меньшего на больший винт, преде этим нужно либо убить raid либо потом потом вручную грузиться и заного его создоваь


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 29 чел.
За последние 30 мин было: 59 человек
За сегодня было
2339 показов,
571 уникальных IP
 

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

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0487 секунд
Из них PHP: 38%; SQL: 62%; Число SQL-запросов: 77 шт.
Исходный размер: 163567; Сжатая: 28228