Ключевые слова:freebsd, install, crypt, disk, (найти похожие документы)
From: asfium <asfium@mail.ru.>
Newsgroups: email
Date: Mon, 29 Jun 2008 17:02:14 +0000 (UTC)
Subject: Установка FreeBSD 7.0 на шифрованую ФС
Идея заключается в том, чтобы установить ОС на ФС, зашифрованую
средствами самой ОС.
ВАЖНО: даная статья не претендует на 100% правильность решения
поставленой задачи.
Имеется ноут ASUS X50V с 80Гб винтом (ad4), флешка KINGSTON 2Гб, 3 CD
FreeBSD 7.0, 1 CD LiveFS FreeBSD 7.0 и Очень большое желание :)
Под рабочей ОС форматирую флешку (UFS без SoftUpdate) и копирую на нее
содержимое 3-х дисков. В результате получится такое дерево каталогов
satellite# ls /mnt/flash
7.0-RELEASE
packages
Тем, у кого есть два привода CD/DVD такого делать не нужно. Ето
обусловлено тем, что установка будет идти с CD LiveFS FreeBSD 7.0, а
нужные пакеты на ходятся на других дисках.
Загружаемся с LiveFS. С помощью sysinstall разбиваем ad4 на два слайса
ad4s1(512Mb) и ad4s2( 75Gb), делаем загрузочном ad4s1 (s),
сохраняем изменения (w), выходим(q), выбираем Standart(No BootManager).
Выходим в осоновное меню sysinstall, переходим на консоль (Fixit -> CD/DVD)
Замечание: разбивку можна сделать и с помощью fdisk, но у меня не получилось :(
Создаем сим линки:
Fixit# ln -s /dist/lib /lib
Fixit# ln -s /dist/boot/kernel /boot/modules
Загружаем модуль geli:
Fixit# kldload geom_eli
Шифруем ad4s2
Fixit# geli init -b -v -e camellia -l 256 /dev/ad4s2
Подключаем ad4s2:
Fixit# geli attach /dev/ad4s2
Если в /dev появился ad4s2.eli значит все OK
Создаем на ad4s1 раздел
Fixit# bsdlabel -w /dev/ad4s1
Fixit# bsdlabel -e /dev/ad4s1
Фоматируем ad4s1a:
Fixit# newfs -O2 /dev/ad4s1a
Монтируем в /mnt/boot
Fixit# mkdir /mnt/boot
Fixit# mount -t ufs -o rw /dev/ad4s1a /mnt/boot
Разбиваем ad4s2.eli:
Fixit# bsdlabel -w /dev/ad4s2.eli
Fixit# bsdlabel -e /dev/ad4s2.eli
В итоге:
ad4s2.elia /
ad4s2.elib swap
ad4s2.elid /var
ad4s2.elie /tmp
ad4s2.elif /usr
ad4s2.elig /home
Форматируем разделы:
Fixit# newfs -O2 /dev/ad4s2.elia
Fixit# newfs -U -O2 /dev/ad4s2.elid
Fixit# newfs -U -O2 /dev/ad4s2.elie
Fixit# newfs -U -O2 /dev/ad4s2.elif
Fixit# newfs -U -O2 /dev/ad4s2.elig
Далее монтируем ad4s2.elia в /mnt/crypt
Fixit#mount -t ufs -o rw /dev/ad4s2.elia /mnt/crypt
Создаем точки монтирования остальных ФС:
Fixit# mkdir /mnt/crypt/home
Fixit# mkdir /mnt/crypt/usr
Fixit# mkdir /mnt/crypt/var
Fixit# mkdir /mnt/crypt/tmp
Монтируем:
Fixit# mount -t ufs -o rw /dev/ad4s2.elig /mnt/crypt/home
Fixit# mount -t ufs -o rw /dev/ad4s2.elif /mnt/crypt/usr
Fixit# mount -t ufs -o rw /dev/ad4s2.elie /mnt/crypt/tmp
Fixit# mount -t ufs -o rw /dev/ad4s2.elid /mnt/crypt/var
Подключаем флешку в /mnt/flash:
Fixit# mkdir /mnt/flash
Fixit# mount -t ufs -o ro /dev/da0s1a /mnt/flash
Устанавливаем переменную DESTDIR:
Fixit# export DESTDIR=/mnt/crypt
Устанавливаем базовую систему с /mnt/flash/7.0-RELEASE:
Fixit# cd /mnt/flash/7.0-RELEASE/base
Fixit# ./install.sh
Устанавливаем ядро:
Fixit# cd /mnt/flash/7.0-RELEASE/kernels
Fixit# ./install.sh GENERIC
Устанавливаем остальные компоненты: src proflibs ports manpages info games doc dict catpages.
Делаем доступным ядро:
Fixit# rmdir /mnt/crypt/boot/kernel
Fixit# rmv /mnt/crypt/boot/GENERIC /mnt/crypt/boot/kernel
Fixit# cp -Rpv /mnt/crypt/boot /mnt/boot
Вклчаем поддержку geom_eli при загрузке:
Fixit# ee /mnt/boot/boot/loader.conf
geom_eli_load="YES"
Fixit# cp /mnt/boot/boot/loader.conf /mnt/crypt/boot/loader.conf
Делаем fstab:
Fixit# mkdir /mnt/boot/etc
Fixit# mkdir /mnt/crypt/cdrom
Fixit# mkdir /mnt/crypt/boot.1
Fixit# ee /mnt/boot/etc/fstab
/dev/ad4s2.elib none swap sw 0 0
/dev/ad4s2.elia / ufs rw 1 1
/dev/ad4s2.elie /tmp ufs rw 2 2
/dev/ad4s2.elid /var ufs rw 2 2
/dev/ad4s2.elif /usr ufs rw 2 2
/dev/ad4s2.elig /home ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
/dev/ad4s1a /boot.1 ufs rw 2 2
Fixit# cp /mnt/boot/etc/fstab /mnt/crypt/etc/fstab
ВСЕ!!! перезагружаемся
Заключение:
Если есть проблемы с вводом пароля при загрузке, надо добавить в:
/boot/device.hints строчку
hint.kdbmux.0.disabled="1"
а в /boot/loader.conf
kern.geom.eli.visible_passphrase=1
За основу был взят материал с сайта http://www.wanda25.de/geli.html
да, нужно ставить ОС на флешку (ad4s1 поменять на da0s1 (флешка)), остальное как обычно.
но при пересборке ядра надо обновлять два /boot
и добавить в loader.conf (на флешке):
geli_da0s1a_keyfile0_load="YES"
geli_da0s1a_keyfile0_type="da0s1a:geli_keyfile0"
geli_da0s1a_keyfile0_name="/boot/keys/freebsd.key" (man geli :)))