|
ROOT ON ZFS FREEBSD 9 live cd on dvd |
Статьи |
|
|
|
К сожалению в FreeBSD 9 CURRENT так и не сделали нормальную установку на ZFS раздел но успели изменить стуктуру установочных файлов и в рещультате старые методы не работают. Для установки на ZFS ROOT нам понадобится загрузиться с Live-CD диска FreeBSD 9 CURRENT (user root) и выполнить следующие шаги: 1. Первое что нужно сделать, так это организовать место для хранения zpool.cache файла и для этого нам придётся перемонтировать /tmp
Код:
umount /dev/md1
mdmfs -s 1024M md1 /tmp
Теперь необходимо создать разделы диска. Мы будем использовать схему GPT - где 4 Gb отдадим на swap а остальное используем под ZFS (предполагается что устанавливаем на один диск, но данный метод может быть, легко использован и для RAID) Создаём разделы и загрузочную запись
Код:
gpart create -s gpt ada0
gpart add -b 34 -s 64k -t freebsd-boot ada0
gpart add -s 4G -t freebsd-swap -l swap0 ada0
gpart add -t freebsd-zfs -l disk0 ada0
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
Теперь диск готов и следующим шагом мы создадим пул и смонтируем его в /mnt. Во время данной операции могут появляться ошибки о монтировании, но вы можете спокойно их игнорировать - они возникают из-за того что / доступен только для записи но это никак нам не помешает.
Код:
zpool create -f zroot /dev/gpt/disk0
zpool set bootfs=zroot zroot
zfs set checksum=fletcher4 zroot
Теперь создадим файл образа системы. Снова игнорируем ошибки о монтировании.
Код:
zfs set mountpoint=/mnt zroot
zfs create zroot/usr
zfs create zroot/tmp
zfs create zroot/var
Квоту диска можно задать опцией -o quote :
zfs create -o quota=4G zroot/usr
Для дальнейшей работы, нам, нужно экспортировать созданный пул в /tmp/zpool.cache
Код:
zpool export zroot
zpool import -o cachefile=/tmp/zpool.cache zroot
В данный момент, пул смонтирован в /mnt и можно приступать к заключительным шагам установки
Код:
chmod 1777 /mnt/tmp
cd /mnt ; ln -s usr/home home
Далее нам нужно установить саму FreeBSD и для этого нам понадобится распаковать архивы с установочного диска. Для минимальной установки понадобится, только три архива base.txz lib32.txz kernel.txz но мы ставим всё.
Код:
sh
cd /usr/freebsd-dist
export DESTDIR=/mnt
for file in base.txz lib32.txz kernel.txz doc.txz ports.txz src.txz;
do (cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/}); done
После распаковки архивов с системой, нам необходимо сохранить zpool.cache в /mnt/boot/zfs/zpool.cache
Код:
cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache
На этом, можно считать систему установленной. Осталось только отредактировать rc.conf, loader.conf и fstab.
Код:
echo 'zfs_enable="YES"' >> /mnt/etc/rc.conf
echo 'zfs_load="YES"' >> /mnt/boot/loader.conf
echo 'vfs.root.mountfrom="zfs:zroot"' >> /mnt/boot/loader.conf
cat << EOF > /mnt/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/gpt/swap0 none swap sw 0 0
EOF
И финальный аккорд
Если вы получаете сообщение "device busy", попробуйте umount -f /mnt
Код:
zfs set mountpoint=legacy zroot
zfs set mountpoint=/tmp zroot/tmp
zfs set mountpoint=/usr zroot/usr
zfs set mountpoint=/var zroot/var
После, можете перезагрузиться, сменить пароль root и настроить сеть. Наслаждайтесь.
|
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем. |
|
Автор: hellevil | 4-04-2012, 10:24 | Просмотров: 7 438 |
|
|
|
|