Из форума по восстановлению
Взято здесь. ...... форматировать слайсы? интересно...
допустим имеем необходимые дампы, варианты восстановления:
1) загрузка с fixit комплекта дискет (неудобно) 2) загрузка с LiveCD (обычно это FreeBSD-X.Y-Release-платформа-disk1.iso) или Frenzy 3) берем новый диск и пихаем в машину с дампами - самый простой вариант
- загружаем FreeBSD с чего угодно, в случае Floppy/CD - выходим в Fixit-mode - оформление диска:
теория: по стандарту MBR может быть разбита не более чем на 4 части (слайсы), загрузчики типа grub/masterboot/etc - обходят это ограничение
диск во FreeBSD может использоваться как для совместимости с другими OS, так и в DD-режиме (dangerous dedicated - без слайсов, сразу разбивается на партиции)
Итого: диск предварительно разбивают на СЛАЙСЫ - до 4'ех затем каждый слайс оформляют в виде партиций - до 8'ми
adXsY - где X=0...n, номера дисков, Y=1,...,4 - s[lices]/слайсы
например диск ad0: ad0s1 - первый слайс ... ad0s4 - последний Если достаточно одного слайса - то adXs1 Затем слайс разбиваем на партиции: adXsYz - где z="a",...,"h" "a" - по умолчанию используется системой для корневой FS, и используется для загрузки "b" - используется под swap "c" - описание всего слайса или диска "d" по "h" - под любые FS
Два способа оформления дисков:
1) использование sysinstall 2) ручной метод с использованием утилит: - fdisk - разбить на слайс/ы - bsdlabel - разбить на партиции - newfs/tunefs - для оформления UFS на партициях
Важное: фреймворк GEOM блокирует прямую запись в MBR в работающей OS: man 4 geom. Для того чтобы можно было на ходу оформлять диски, необходимо ядру выставить переменную:
- sysctl kern.geom.debugflags=16
Однако, данную переменную НЕ проверяет sysinstall (до 6.1 точно)
После установки данной переменной можно воспользоваться способом 2) для оформления дисков. Если хочется использовать sysinstall - нужно загружаться с LiveCD/Frenzy
Использование sysinstall:
выбираем -> Custom - получаем:
3 Partition Allocate disk space for FreeBSD - разбить на слайсы, аналогично выполнению fdisk, как уже было сказано, можно выделить до 4'ех слайсов под разные OS:
"A" - отдать весь диск под FreeBSD (одним слайсом) "D" - удалить слайс "G" - всем известный параметр принять-задать геометрию диска "C" - создать слайс "S" - пометить слайс как загрузочный bootable "W" - записать изменения в MBR "T" - изменить тип слайса/раздела и тд и тп
после чего всегда вылетает предложение: - BootMgr Install the FreeBSD Boot Manager - Standard Install a standard MBR (no boot manager) - None
если нам не нужно прописывать загрузчик для этого слайса - выбираем None, если нужно - либо ОДИН == Standard, это только ОДИН загрузчик, либо BootMgr == boot0cfg - для загрузки с нужного диска/слайса
после оформления слайса необходимо разбить на партиции:
4 Label Label allocated disk partitions - это ТОЛЬКО для FreeBSD, мы разбиваем слайс на партиции "a" - root-fs, "b" - swap, с "d" по "h" - любые дополнительные "c" - зарезервировано, и одновременно задаем точки монтирования, аналогично - выполнению: bsdlabel + newfs, например:
ad0s1a -> 200MB -> FS -> mount to "/" ad0s1b -> 512MB -> swap -> swap ad0s1d -> 5GB -> FS -> mount to "/usr" и так далее
"C" - Create/Создать партицию "D" - Delete/Удалить "M" - Mount pt./задать/изменить точку монтирования "W" - Write/Записать все что тут натворили "N" - Newfs Opts/Задать-изменить опции newfs "Q" - Finish "S" - Toggle SoftUpdates/включить-отключить опцию Softupdates и так далее
Так как данный пункт представляет из себя две операции: bsdlabel - разбить на партиции и newfs/tunefs - форматирование, можем использовать как угодно, например без форматирования, а форматировать руками - newfs
Прим: выше я не вдавался в подробности использование Geometry, опций Newfs, Delete+Merge - удалить и склеить вместе
Использование fdisk, bsdlabel, newfs
- здесь нечего подробно расписывать, есть man'ы там все подробно изложено, только несколько примеров:
- fdisk ad0 - посмотреть разбивку на слайсы
- fdisk -s ad0 - верхнее в урезанном формате
- fdisk -B ad0 - прописать boot код, инициализировать нулевой сектор
- fdisk -a ad0 - сменить активный слайс
разбивка на слайсы:
- fdisk -f configfile [-itv] [disk]
создаем конфигурационный файл с описанием разбивки - disktab, преже чем записать, можем проверить:
- fdisk -f disktab -t ad0
disktab ------------------
- --lavr комментарий
- - ниже можно указать геометрию
- - кол-во цилиндров, голов, секторов в любом порядке
- 1 <= number of cylinders
- 1 <= number of heads <= 256
- 1 <= number of sectors/track < 64
g c14946 h255 s63
- p slice type start length - формат разбивки
- p номер-слайса тип начальный-сектор длина-в-секторах
p 1 165 63 240107427
- p 2 ...
- p 3 ...
- p 4 ...
- -- активный слайс
a 1
Выделить ВЕСЬ диск под слайс FreeBSD и прописать загрузчик:
- fdisk -BI -v -b /boot/mbr ad0
bsdlabel - разметка диска/слайса на партиции
- тут больше чем в manual и handbook не скажешь, некоторые примеры:
Создать freebsd слайс и прописать стандартный загрузчик + предварительная авто-разбивка на партиции с последущим редактированием:
- fdisk -BI -v -b /boot/mbr ad0
- disklabel -w -r -B -b /boot/boot1 -s /boot/boot2 ad0s1 auto
или
- fdisk -BI -a1 ad0
- bsdlabel -B -w -r ad0s1 auto
или делаем auto с последующей правкой руками
- disklabel -w -B ad0s1 auto
Затем редактируем:
- disklabel -e -r ad0s1 с нужными размерами
Важное: обязательно читать man bsdlabel на предмет сохранения таблицы партиций в файл, затем можно отредактировать и записать обратно вместо интерактивной ручной разбивки, а можно использовать disktab(5) для разбивки, предварительно создав в нем нужную запись со структурой
После освоения верхних команд, проблем с дисками и восстановлением быть не должно.
этапы:
- оформляем новый диск: sysinstal или fdisk+bsdlabel+newfs не забываем про загрузчик, стандартный или менеджер и указание загрузки с дисков/соответствующего диска в BIOS [- fsck -y /fs - обязательно прогоняем fsck перед монтированием когда-то ранее созданных FS, те не сейчас] - монтируем - производим restore или tar/cpio/pax и тд и тп - желательно для "/" - rootfs, для "/usr", "/var" - затем можно перегружаться и восстанавливать остальное
PS. Я пытался проверить на ошибки, поэтому применять только совместно с чтением man. Ничто в мире не вечно. _________________ Good luck, -- lavr
ну и славно, про партицию "a" и смену mount-point я забыл
отразить ньюанс, ну собственно догадаться не сложно.
А вот монтировать для восстановления можно еще проще: - зачем плодить /mnt/root, /mnt/usr, /mnt/var и тд и тп?
Если мы будущий корень смонтируем на /mnt - то будущий корень у нас будет "/" -> "/mnt" и после restore корня у нас появятся директории пустышки -> точки монтирования для "/usr", "/var" и тд и тп. А значит что? Правильно: монтируем будующий корень в "/mnt" - это "/" - делаем restore корня. Получаем нужные точки монтирования для /usr, /var & etc - монтируем наши пустые FS -> /mnt/usr, /mnt/var и тд и тп и продолжаем restore для них
понятно изложил? _________________ Good luck, -- lavr