Из форума по восстановлению

Материал из rrv-wiki
Перейти к навигации Перейти к поиску

Взято здесь. ...... форматировать слайсы? интересно...

допустим имеем необходимые дампы, варианты восстановления:

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. Для того чтобы можно было на ходу оформлять диски, необходимо ядру выставить переменную:

  1. 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'ы там все подробно изложено, только несколько примеров:

  1. fdisk ad0 - посмотреть разбивку на слайсы
  2. fdisk -s ad0 - верхнее в урезанном формате
  3. fdisk -B ad0 - прописать boot код, инициализировать нулевой сектор
  4. fdisk -a ad0 - сменить активный слайс

разбивка на слайсы:

  1. fdisk -f configfile [-itv] [disk]

создаем конфигурационный файл с описанием разбивки - disktab, преже чем записать, можем проверить:

  1. fdisk -f disktab -t ad0

disktab ------------------

  1. --lavr комментарий
  1. - ниже можно указать геометрию
  2. - кол-во цилиндров, голов, секторов в любом порядке
  3. 1 <= number of cylinders
  4. 1 <= number of heads <= 256
  5. 1 <= number of sectors/track < 64

g c14946 h255 s63

  1. p slice type start length - формат разбивки
  2. p номер-слайса тип начальный-сектор длина-в-секторах

p 1 165 63 240107427

  1. p 2 ...
  2. p 3 ...
  3. p 4 ...
  4. -- активный слайс

a 1


Выделить ВЕСЬ диск под слайс FreeBSD и прописать загрузчик:

  1. fdisk -BI -v -b /boot/mbr ad0

bsdlabel - разметка диска/слайса на партиции

- тут больше чем в manual и handbook не скажешь, некоторые примеры:

Создать freebsd слайс и прописать стандартный загрузчик + предварительная авто-разбивка на партиции с последущим редактированием:

  1. fdisk -BI -v -b /boot/mbr ad0
  2. disklabel -w -r -B -b /boot/boot1 -s /boot/boot2 ad0s1 auto

или

  1. fdisk -BI -a1 ad0
  2. bsdlabel -B -w -r ad0s1 auto

или делаем auto с последующей правкой руками

  1. disklabel -w -B ad0s1 auto

Затем редактируем:

  1. 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