LINUX.ORG.RU
ФорумAdmin

[FreeBSD] Сделать загрузочным зеркало gmirror

 


0

0

Есть два зеркала: gm0 и gm1. На gm0 остался лишь корень, потому хочеться от него избавиться, схехав на gm1.

Каким образом сделать gm1 загрузочным? Скопировать «dump | restore» - понятно. Как грузиться с gm1s1a?

sysinstall не помогает, там лишь ad*. Пока лишь такой вариант придумал: оставить в gm1 лишь одного провайдера, в sysinstall для этого провайдера выставить флаг загрузки, установить загрузчик. Но не уверен, что будет возможность на запись. Полностью разбирать?

FreeBSD 7.3


boot0cfg -B /dev/adM
boot0cfg -B /dev/adN

где adM и adN — винчестеры, принадлежащие зеркалу gm1.

bsdlabel -w -B gm1s1


iZEN ★★★★★
()
Ответ на: комментарий от iZEN

> bsdlabel -w -B gm1s1

Хочеться уточнить. Ключ w убивают всю текущию разметку заменя на новую дефолтную?

PavelR
() автор топика

эм, дык грузиться с жестяка, а не с зеркала, это потом уже когда ядро в памяти внезапно система узнает о зеркале, от этого и танцуем

hizel ★★★★★
()
Ответ на: комментарий от iZEN

> Бэкапы ещё никто не отменял.

Бэкапы только собственно данных. При таком выстреле в ногу придется все переустанавливать. Решил посмотреть что будет в виртуалке. Предположительынй сценарий такой:

fdisk -a -1 /dev/mirror/gm1

// действия по поводу запрета на запись

fdisk -B /dev/mirror/gm1

bsdlabel -B /dev/mirror/gm1s1

PavelR
() автор топика
Ответ на: комментарий от PavelR

fdisk и bsdlabel — анахронизм.

Если есть возможность, используйте переразбивку винчестеров в GPT с помощью gpart.

1.

% gpart create -s GPT ad4
% gpart add -b 34 -s 256 -t freebsd-boot -l my_boot ad4
% gpart add -b 290 -s 4194304 -t freebsd-swap -l my_swap ad4
% gpart add -b 4194594 -s 22G -t freebsd-ufs -l my_system ad4
% gpart add -s <скока нежалко> -t freebsd-ufs -l my_data ad4

2. В псевдо-MBR помещается загрузчик:

gpart bootcode -b /boot/pmbr ad4
(делается для каждого диска в зеркале)

3. В самый первый раздел помещается загрузчик:

% gpart bootcode -p /boot/gptboot -i 1 ad4
(тоже делается для каждого диска в зеркале)

4. Далее объединяете разделы ad*p3 (система) и ad*p4 (данные) в отдельные зеркала. Зеркала (а не разделы!) форматируете в файловой системе UFS2. Подмонтируете зеркало с файловым пространством под систему (gmirror из ad*p3) и разворачиваете на нём чистую операционную систему:

% cd /usr/src/ && make cleandir buildworld buildkernel installkernel installworld distribution DESTDIR=/mnt
.

5. Настраиваете /mnt/etc/fstab для возможности загрузки с зеркала. Отмонтируете. Попробуйте загрузиться с созданного таким образом зеркала. Если получилось, то можно приводить в порядок зеркало с данными и SWAP-пространство.

iZEN ★★★★★
()
Ответ на: fdisk и bsdlabel — анахронизм. от iZEN

HowTo

Тестировал в виртуалке. Собрал два зеркала, оба подключенных и монтированных.

GEOM все пропустил без проблем, лишь выдав «gm1 not found».

fdisk -a -1 /dev/mirror/gm1 # ставим активным, говорим да

fdisk -B /dev/mirror/gm1 # ставим MBR, говорим да

bsdlabel -B /dev/mirror/gm1s1 # ставим бутстейс, ещё какой-то загрузчик

vi /etc/fstab # не забудьте сменить gm0 на gm1

Но быть может сильно повезло, что fdisk не отвалился из-за невозможности писать. Черед пару дней-недель отпишусь как на боевом было.

PavelR
() автор топика
Ответ на: fdisk и bsdlabel — анахронизм. от iZEN

> Далее объединяете разделы ad*p3 (система) и ad*p4 (данные) в отдельные зеркала.

У меня так и было. Но я от этого отказался и собрал все в единое зеркало. Так удобнее - вотнкул винт, вставил в рейд. Различные размеры дисков особо не пугают.

SWAP-пространство

Да, сейчас это на зеркале. Но он никогда не использовался и вряд ли будет.

PavelR
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.