Почитал по этой теме, нашлось несколько способов но какой, так сказать, более правильный, если не брать в расчет простоту?
(С корректным переносом разрешений.)
Нашел следующие варианты(взможно не все)
- clonehdd
- fsbackup
- dump/restore
- sysinstall/bsdconfig, с разбиением, монтированием в /mnt, копированием/dump_restore
Сам склоняюсь к последнему.
И еще вопрос: можно ли вынести из, например, /usr каталог, скажем, /home, в отдельный раздел, без последствий для ос?
>[оверквотинг удален]
> правильный, если не брать в расчет простоту?
> (С корректным переносом разрешений.)
> Нашел следующие варианты(взможно не все)
> - clonehdd
> - fsbackup
> - dump/restore
> - sysinstall/bsdconfig, с разбиением, монтированием в /mnt, копированием/dump_restore
> Сам склоняюсь к последнему.
> И еще вопрос: можно ли вынести из, например, /usr каталог, скажем, /home,
> в отдельный раздел, без последствий для ос?Все зависит от ваших хотелок и как сейчас стоит сама фря, которую вы хотите перенести, если к примеру она стоит на zfs, то все ваши варианты в пролете, в случае ufs я предпочитаю dump/restore и вообще разбиение на разделы(слайсы) я считаю анохронизмом, достаточно с моей точки зрения swap'a и / (root'a).
zfs я сейчас не рассматриваю, чтобы перейти. Да и памяти в компе 2 гига всего. Хотя читал про эту fs.
У нее 2 гига как раз, минимальное требование, вроде.
Все разделы ufs. /boot, / , /swap, /tmp, /var, /usr
> zfs я сейчас не рассматриваю, чтобы перейти. Да и памяти в компе
> 2 гига всего. Хотя читал про эту fs.
> У нее 2 гига как раз, минимальное требование, вроде.
> Все разделы ufs. /boot, / , /swap, /tmp, /var, /usrставите FreeBSD для тренинга на виртуалку и тренируетесь:
- dump/restore
- pax
- cpio
- tar
- rsyncвыясняете что в каком случае удобней
> zfs я сейчас не рассматриваю, чтобы перейти. Да и памяти в компе
> 2 гига всего. Хотя читал про эту fs.
> У нее 2 гига как раз, минимальное требование, вроде.
> Все разделы ufs. /boot, / , /swap, /tmp, /var, /usrна всякий случай:
swap != /swap (это сырой раздел)
Вам проще всего сделать так:
- создать 3'и gpt партиции1) freebsd-boot (для загрузки)
2) freebsd-ufs (для корневой FS: "/")
3) freebsd-swap (для swap)- создать FS для корня: newfs
- смонтировать в /mnt
- rsync / /mnt
- исправить /mnt/etc/fstabВсе
Спасибо.
По ходу дисковой темы, разбираюсь с gpart. Появился вопрос. Можно ли при создании Таблицы GPT, указать ее размер,
как при создании разделов?
Резервная копия этой таблицы хранится в последнем доступном блоке диска, а если я хочу, к примеру, отступить от зоны
парковки, еще на определенное количество блоков и разместить резерную копию подальше от нее.
этот момент не нашел, обычно везде на полную катушку: # gpart create -s gpt ad4 и все
> По ходу дисковой темы, разбираюсь с gpart. Появился вопрос. Можно ли при создании Таблицы GPT, указать ее размер, как при создании разделов?Можно попытаться указать кол. записей
gpart create ... -n <num>
по умолчанию там, вроде бы, выставлен минимум (по спецификации): овердофига^W 128. Maксимум, (опять же, вроде бы) 4096.
> Резервная копия этой таблицы хранится в последнем доступном блоке диска, а если
> я хочу, к примеру, отступить от зоны парковки, еще на определенное количество блоков и разместить резерную копию подальше от нее.Хм … и как та же автопроверка целостности, при подключении диска, будет определять, где бэкап таблицы?
Для этого ей ведь нужно где-то прочитать смещение, но чтобы прочитать смещение, нужно его вначале записать + знать этот адрес/блок, т.е. нужны дополнительный метаданные (в общем, усложнение и нагромождение костылей и подпорок на ровном месте).
Ну или вам, при восстановлении таблицы, придется вспоминать смещение.Не проще ли сделать еще одну резервную копию:
geom backup da123 > /другойдиск-шара-итд/mybackup ?
Оно еще и в "человеко-читабельном" формате, так что можно еще и распечатать и спрятать в надежном месте :)
> Можно попытаться указать кол. записей
> gpart create ... -n <num>
> по умолчанию там, вроде бы, выставлен минимум (по спецификации): овердофига^W 128. Maксимум,
> (опять же, вроде бы) 4096.Как раз курю статьи и ман gpart по -n
> Хм … и как та же автопроверка целостности, при подключении диска, будет
> определять, где бэкап таблицы?
> Для этого ей ведь нужно где-то прочитать смещение, но чтобы прочитать смещение,
> нужно его вначале записать + знать этот адрес/блок, т.е. нужны дополнительный
> метаданные (в общем, усложнение и нагромождение костылей и подпорок на ровном
> месте).
> Ну или вам, при восстановлении таблицы, придется вспоминать смещение.Как чувствовал... Хорошо, что заранее немного отполз, через HPA :)
>[оверквотинг удален]
>> (опять же, вроде бы) 4096.
> Как раз курю статьи и ман gpart по -n
>> Хм … и как та же автопроверка целостности, при подключении диска, будет
>> определять, где бэкап таблицы?
>> Для этого ей ведь нужно где-то прочитать смещение, но чтобы прочитать смещение,
>> нужно его вначале записать + знать этот адрес/блок, т.е. нужны дополнительный
>> метаданные (в общем, усложнение и нагромождение костылей и подпорок на ровном
>> месте).
>> Ну или вам, при восстановлении таблицы, придется вспоминать смещение.
> Как чувствовал... Хорошо, что заранее немного отполз, через HPA :)не проще ли gpart backup ...
> Спасибо.
> По ходу дисковой темы, разбираюсь с gpart. Появился вопрос. Можно ли при
> создании Таблицы GPT, указать ее размер,
> как при создании разделов?
> Резервная копия этой таблицы хранится в последнем доступном блоке диска, а если
> я хочу, к примеру, отступить от зоны
> парковки, еще на определенное количество блоков и разместить резерную копию подальше от
> нее.
> этот момент не нашел, обычно везде на полную катушку: # gpart create
> -s gpt ad4 и всеесли память не изменяет, зона парковки уже давно выведена
с рабочей области пластин, те с области данных.А спецификацию на GUID Partition Table, можно найти на сайте UEFI.
если задача по быстрому склонировать зеркальный диск: Clonezilla, Parted Magic и т.д. проверено временами
> если задача по быстрому склонировать зеркальный диск: Clonezilla, Parted Magic и т.д.
> проверено временамии как это будет в случае трансформации:
- MBR -> GPT ?
- диск с GPT одного размера на диск другого размера?
> и как это будет в случае трансформации:
> - MBR -> GPT ?блочное копирование подразумевает идентичную копию, никакой транформации.
> - диск с GPT одного размера на диск другого размера?блочное копирование, с учетом что DST диск не меньше SRC диска
сдублировав диск, можно уже дальше играться с разделами и монтированием
>> и как это будет в случае трансформации:
>> - MBR -> GPT ?
> блочное копирование подразумевает идентичную копию, никакой транформации.
>> - диск с GPT одного размера на диск другого размера?
> блочное копирование, с учетом что DST диск не меньше SRC диска
> сдублировав диск, можно уже дальше играться с разделами и монтированиемну и нафига козе баян, ТС не нужен дуп один в один, посему речь не идет
о clonzilla (тем более единичной, тут и dd хватит) и тем более об остальной туфте
а ля acronis, partition чего-то там.Еще и диски вроде разнокалиберные...
Да, диски разные.
DST DISK - RAID1: 2 винта по 80Гб(вчера отрезал еще поболее, каждый, с конца - по 1.1Гиг, раз с GPT не вышло)
Последний пользовательский блок получился 154009600(заводской был 156301487). Т.е. в нем будет резервная копия заголовка GPT
Контроллер увидел их как 78.8. Зеркало создалось без проблемВообще задумка была, отступить столько, от зоны парковки, чтобы край слайдера головы, в запаркованном стостоянии, не доставал
до последнего пользовательского сектора. Но для этого надо открыть диск, и викой, например, засечь положение головы, при скане
последних цилиндров. Хотя, возможно, так оно уже и есть и я параноик. Но все равно, отступить не помешает.
...есть почти уже не рабочий MAXTOR 60Gb. Его можно открыть и все проверить:)Кстати, в Максторе, парковка возле шпинделя. В ST 40Gb(одна сторона блина, 1голова) - тоже. Наверняка и в ST 80(2 головы и
2 стороны). Ранние диски, были все с парковкой в центре. https://3dnews.ru/640707SRC DISK - SATA 320Gb.
4Gb - root (на dst хотелось бы уменьшить до 2Гб(занято 300мег))
6Gb - swap (увеличить на 2Гб)
18Gb - tmp и var (Уменьшить до 6 и 8Гб Примерно)
Остальное - usr ( на SRC занято ~6 Гиг)Также, на DST диске, хотел добавить разделы /usr/home и /www, по 12 и 4 гига
Теперь, можно создать схему GPT на DST диске, поместить загрузчики в 1-й блок(PMBR) и 1-й блок /boot (Пока еще не делал)
Дустим, далее, создать необходимые разделы и тут пока что вопрос: Restore не может произвести слияние ФС в дампе и
в DST диске. Чтобы, к примеру, перенести фактические данные и объединить 2 ФС. Как я понял, такое невозможно.Даже если не брать в расчет ФС, то как быть с разными рамерами разделов?
Выходит,остаются утилиты, работающие повыше - tar, pax, cpio.Да, lavr подсказал rsync - это вариант, должен сработать, по идее. Еще почитаю и Буду пробовать.
Попался коммент один в статье.. Вопрос:
https://habrahabr.ru/post/347002
"«как уменьшить GPT» — не какой-то раздел на GPT, а всю разметку, передвигая копию GPT ближе к началу."
И ответ:
"У тебя есть два варианта сжатия GPT и оба не трогают резервную область:- Мигрирование
- Сожми разделы на основном диске
"
А как их можно сжать? Тогда бы попроще было.
> SRC DISK - SATA 320Gb.
> 4Gb - root (на dst хотелось бы уменьшить до 2Гб(занято 300мег))
> 6Gb - swap (увеличить на 2Гб)
> 18Gb - tmp и var (Уменьшить до 6 и 8Гб Примерно)
> Остальное - usr ( на SRC занято ~6 Гиг)а че парится, если все расписано. создается на DST диске нужные разметки по объему и как уже предложили методы тупого копирования (rsync, tar, cpio и т.д.)
@lavr акронисом не пользуюсь :D
>[оверквотинг удален]
> "«как уменьшить GPT» — не какой-то раздел на GPT, а всю разметку,
> передвигая копию GPT ближе к началу."
> И ответ:
> "У тебя есть два варианта сжатия GPT и оба не трогают резервную
> область:
> - Мигрирование
> - Сожми разделы на основном
> диске
> "
> А как их можно сжать? Тогда бы попроще было.Лично мне непонятно ЧТО ВЫ ХОТИТЕ СДЕЛАТЬ:
1. проводите опыты и эксперименты со старыми HDD?
или
2. хотите задействовать СТАРОЕ железо под OS FreeBSD?Если п.1 - то почему Вы озадачились только HDD, почему
не разбираете работу старых ШИН, CPU, PCI - их конструктив
и пропускную способность?Sorry, но производить разметку диска ИСХОДЯ из ПАРКОВКИ ГОЛОВОК
- это паранойя, ибо у разных вендоров, использовались разные
решения.Большинство ОС ориентируется на структуру GPT в 128 партиций,
первые 33 сектора LBA и последние 33 - есть основная GPT и
ее копия. Сдвинуть тут ничего не получится. Только
использовать партиции GPT, последняя из которых будет НЕ ДО КОНЦА.Если Вам не нужны эти достижения, используйте MBR в которой
последняя primary будет не до конца диска.Imho, если бы системные администраторы занимались такой мурой,
не на чем было бы работать, вместо рабочего пространства на HDD
было бы сито, вместо работы - геморрой.
> "«как уменьшить GPT» — не какой-то раздел на GPT, а всю разметку,
> передвигая копию GPT ближе к началу."
> И ответ:
> "У тебя есть два варианта сжатия GPT и оба не трогают резервную
> область:
> - Мигрирование
> - Сожми разделы на основном диске
> А как их можно сжать? Тогда бы попроще было.https://www.freebsd.org/doc/handbook/disks-growing.html в сторону увеличения можно поиграться, в сторону уменьшения придется попыхтеть различными утилитами
> Вообще задумка была, отступить столько, от зоны парковки, чтобы край слайдера головы,
> в запаркованном стостоянии, не доставал
> до последнего пользовательского сектора. Но для этого надо открыть диск, и викой,
> например, засечь положение головы, при скане
> последних цилиндров. Хотя, возможно, так оно уже и есть и я параноик.Нет ты просто на всю голову еб^W волшебный! %-)
Мне бы столько свободного времени ... хотя всё равно - нет, я бы лучше к бабам сбегал чем харды вилкой ковырять :-)
Времени свободного, как раз, не много, ну а остальное - личное дело каждого.
Собственно, перенос системы, вроде как провел на днях.Напишу по памяти алгоритм, для закрепления:). Хотя может в цифрах где и ошибусь.
Может кому пригодится. Проверьте сам принцип
Решил, что утилиты tar, cpio, rsync, оставлю про запас, если не получится с dump/restoreУдаляем предыдущее, создаем схему, делим диск на разделы и создаем фс :
1. gpart destroy -F /dev/twed0 - удаление MBR и винды.
2. gpart create -s GPT -n 128 /dev/twed0 - создаем схему.
-n - планировал задать 8, но по спецификации мин 128. К сожалению.3. gpart add -t freebsd-boot -b 40 -s 512kb -l nsboot /dev/twed0 - раздел загрузчика.
gpart bootcode -b /boot/pmbr -p /boot/nsboot -i 1 /dev/twed0 - загрузчики MBR и /boot.
gpart add -t freebsd-swap -b (*) -s 8392mb -l nswap /dev/twed0 - раздел swap
* Смещение предыдущего раздела, в блоках, + 180224 блока. Чтобы получилось симпатичное сито:)
....
gpart add -t freebsd-ufs -b 109563904 -s 20264mb -l nsusr /dev/twed0 - раздел usr4. newfs /dev/twed0p3(4,5,6,7,8)
Потом, загружаем Single User Mode и меняем режим доступа, к корневому разделу, на rw
(Хотя тут, можно было, примонтировать /tmp, наверно), для работы dump|restore pipeline.mount -u /
Т.к. корень SRC, уже готов(удалил еще .snap, на всяк случай, чтобы dump не ругался), то
Монтируем корень DST диска в /mnt/root, переходим в cd /mnt/root и проводим dump | restore:dump -0 -L -C 16 -r -f - /dev/ada0p2 | restore -r -f -
И раздел перенесен.Остальные разделы точно таким же способом: Сначала монтируем SRC, потом монтируем DST,
во временный каталог, переходим в него и выпоняем dump|restore.А вот в usr разделе , нужно вынести /home, в отдельный раздел. Опять же, по хэндбуку:
Монтируем раздел DST usr, в /mnt/usr, а раздел DST home - в /mnt/usr/home. Переходим в /mnt/usr,
выполняем
dump -0 -L -C 16 -r -f - /dev/ada0p6 | restore -r -f -и старый /usr/home SRC, должен выдавиться в новый /mnt/usr/home DST .
Потом поправил /mnt/root/etc/fstab и загрузился :) Ошибок вроде не заметил.
Т.е. метод подходит и для переезда в менее емкий диск. Хотя еще досконально не проверял...
А кстати, как можно проверить целостность ФС, после переноса? fsck, еще не делал, но может
что-то ещеПолучилось так:
gpart show -l -p
=> 34 154007485 twed0 GPT (73G)
34 6 - free - (3.0k)
40 1024 twed0p1 nsboot (512k)
1064 48088 - free - (23M)
49152 17375232 twed0p2 nswap (8.3G)
17424384 180224 - free - (88M)
17604608 3301376 twed0p3 nsroot (1.6G)
20905984 180224 - free - (88M)
21086208 10698752 twed0p4 nstmp (5.1G)
31784960 180224 - free - (88M)
31965184 7143424 twed0p5 nsvar (3.4G)
39108608 180224 - free - (88M)
39288832 15675392 twed0p6 nspool (7.5G)
54964224 180224 - free - (88M)
55144448 54239232 twed0p7 nshome (25G)
109383680 180224 - free - (88M)
109563904 41500672 twed0p8 nsusr (19G)
151064576 2942943 - free - (1.4G)=> 34 625142381 ada0 GPT (298G)
34 1024 ada0p1 exbootfs (512k)
1058 8388608 ada0p2 exrootfs (4.0G)
8389666 12582912 ada0p3 exswapfs (6.0G)
20972578 37748736 ada0p4 exvarfs (18G)
58721314 37748736 ada0p5 exvarfs (18G)
96470050 528482304 ada0p6 exusrfs (252G)
624952354 190061 - free - (92M)
-----
mount
/dev/twed0p3 on / (ufs, local)
devfs on /dev (devfs, local)
/dev/twed0p5 on /var (ufs, local)
/dev/twed0p4 on /tmp (ufs, local)
/dev/twed0p8 on /usr (ufs, local)
/dev/twed0p7 on /usr/home (ufs, local)
/dev/twed0p6 on /sdvol (ufs, local)
-----
df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/twed0p3 1.5G 329M 1.1G 23% /
devfs 1.0k 1.0k 0B 100% /dev
/dev/twed0p5 3.3G 51M 3G 2% /var
/dev/twed0p4 5G 34M 4.5G 1% /tmp
/dev/twed0p8 19G 2.9G 14G 16% /usr
/dev/twed0p7 25G 1.2G 21G 5% /usr/home
/dev/twed0p6 7.2G 12k 6.7G 0% /sdvol
-----
По ходу переноса usr раздела, DUMP выдал сообщение. Не помню точно,но примерно такое:
DUMP:(пустое место) is not a directory. Dumping downgraded. ...И перенос 6 гиг, занял минут 30-40 наверно. По завершении, выдал скорость 1186(примерно)кб.
В чем может быть причина?
...непонятная ситуация получилась.
Подключил отдельный backup диск SAMS SV1021H (IDE), через hdd карман, к 1 каналу встроенного контроллера.
Диск размечен был под WinXP, но суть в том, что при загрузке выводится следующие две строки:
GEOM_RAID: Promise: Array Promise created.
GEOM_RAID: Promise: Disk ada0 state changed from NONE to ACTIVE.Ну и gpart ругается на ada0, что мол Invaid argument.
ada0 - это именно этот диск. GEOM_RAID включен в ядре. Никак не соображу - почему происходит определение
диска к raid?
Но с SATA диском такого небыло, да и с IDE, без кармана, вроде тоже(Хотя точно не скажу, но не видел раньше
таких строк). Первый раз вот подключил, через карман. Неужели из-за него может быть.. ?
>[оверквотинг удален]
> GEOM_RAID: Promise: Array Promise created.
> GEOM_RAID: Promise: Disk ada0 state changed from NONE to ACTIVE.
> Ну и gpart ругается на ada0, что мол Invaid argument.
> ada0 - это именно этот диск. GEOM_RAID включен в ядре. Никак не
> соображу - почему происходит определение
> диска к raid?
> Но с SATA диском такого небыло, да и с IDE, без кармана,
> вроде тоже(Хотя точно не скажу, но не видел раньше
> таких строк). Первый раз вот подключил, через карман. Неужели из-за него может
> быть.. ?пора бы уж научиться читать man'ы
вариант 1: Контроллер Promise - какие-то каналы объединены в нем в RAID0/1, а что уж там
у Вас в BIOS настроено?
вариант 2: geom_raid нашел на вашем диске какие-то метаданные от raid0 или raid1,
распознал их как метаданные от promiseв /boot/loader.conf
kern.geom.raid.enable=0
# reboot
или при загрузке - выйти в loader:
OK set kern.geom.raid.enable=0
OK boot
Спасибо. Маны не читал, признаюсь:( Учтем.
В BIOS ничего подобного нет. Никакого внешнего/встроенного контроллера, кроме ICH5: 2 IDE 2 SATA.
(Сейчас внешний есть, но 3Ware)
Этот диск стоял в компе с МП nForce430 MCP61(кажется так), а до этого на него был склонирован диск
SAMS 200Gb, который также, стоял ранее, в том же компе(nForce). В этой МП нету и намека на Promise.
А 200Гб диск до этого, возможно,(но тут не помню... где-то в 2013 году дело было) подключался к
перешитому\перепаянному из IDE Ultra 100 FastTrack100:)
Выходит, что диск подключался таки к Promise.Больше не откуда такому приплыть.Да я наверно,.. пересоберу без GEOM_RAID. Тем более, что нужно еще кое чего поправить.
Хотя, сначала почищу диск, для эксперимента. Вся разметка старая там осталась.
>[оверквотинг удален]
> этого на него был склонирован диск
> SAMS 200Gb, который также, стоял ранее, в том же компе(nForce). В этой
> МП нету и намека на Promise.
> А 200Гб диск до этого, возможно,(но тут не помню... где-то в 2013
> году дело было) подключался к
> перешитому\перепаянному из IDE Ultra 100 FastTrack100:)
> Выходит, что диск подключался таки к Promise.Больше не откуда такому приплыть.
> Да я наверно,.. пересоберу без GEOM_RAID. Тем более, что нужно еще кое
> чего поправить.
> Хотя, сначала почищу диск, для эксперимента. Вся разметка старая там осталась.я Вам нарисовал 2'а варианта, думаю - это наличие метаданных в особой
области диска, полагаю, именно их geom_raid и нашел ибо просто так, ничего не бывает.
> я Вам нарисовал 2'а варианта, думаю - это наличие метаданных в особой
> области диска, полагаю, именно их geom_raid и нашел ибо просто так, ничего не бывает.Обнулил начало диска и конец - упоминания про raid promise пропали, при загрузке.
Выходит, gpart destroy -F ada0, сначала ругался, не хотел удалять разметку, потому что
диск был "занят", если так можно выразится...После очистки, тоже ругнулся:) ну тут нечего было удалять просто.
Ну а создалась схема без проблем.