[freebsd] Пересборка ядра amd64 с uefi

Alexey Krylov krylov at ukr.net
Mon Mar 6 17:16:29 EET 2017


Здравствуйте, Eugene.



> On 06.03.2017 21:14, Alexey Krylov wrote:
>> Здравствуйте.
>> 
>> Поставил чистую систему с образа
>> FreeBSD-10.3-RELEASE-amd64-uefi-memstick.img
>> 
>> Разметил диск на zfs, установил систему. Все ок.
>> Пересобираю ядро и система перестает загружаться.
>> 
>> Trying to mount root from zfs:zroot []...
>> Mounting from zfs:zroot failed with error 6.
>> 
>> При нажатии на Enter идет перезагрузка
>> В экране приветствия указываю kernel.old и система загружается.
>> 
>> Скажите, что в ядре Generic надо добавить, чтобы пересборка
>> с uefi прошла удачно.

> zfs не может найти свои диски

> А вообще, подземный стук не лечится.
> "Пересобираю адро" с каким конфигом - GENERIC или кастомным?
в GENERIC закомментировал ipv6
> Какие опции вызова make и что в src.conf/make.conf?
make buildkernel KERNCONF=MYKERNEL
make installkernel KERNCONF=MYKERNEL
reboot

> Какие дисковые контроллеры, какие диски, какое разбиение дисков
> и конфигурация загрузочного пула?
Тут все в куче, если нужно - могу прокомментировать строчки (если смогу)
======================================================================
mount -o rw /dev/ufs/FreeBSD_Install
chmod 777 /tmp
umount -f /dev/md1
mdmfs -s 1024M md1 /tmp
gpart destroy -F ada0
gpart create -s gpt /dev/ada0
gpart add -s 800K -t efi ada0
gpart add -t freebsd-zfs -l disk0 ada0

#//////////////////////////////////////////////
zpool create -f zroot /dev/gpt/disk0
zpool set bootfs=zroot zroot
zfs set checksum=fletcher4 zroot
zfs set mountpoint=/mnt zroot
zpool export zroot
zpool import -o cachefile=/tmp/zpool.cache zroot
zfs create -V 16G zroot/swap
zfs set org.freebsd:swap=on zroot/swap
zfs set checksum=off zroot/swap
zfs create zroot/usr
zfs create zroot/usr/home
zfs create zroot/var
zfs create zroot/media
zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp
zfs create -o compression=lzjb -o setuid=off zroot/usr/ports
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/usr/src
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/crash
zfs create -o exec=off -o setuid=off zroot/var/db
zfs create -o compression=lzjb -o exec=on -o setuid=off  zroot/var/db/pkg
zfs create -o exec=off -o setuid=off zroot/var/empty
zfs create -o compression=lzjb -o exec=off -o setuid=off  zroot/var/log
zfs create -o compression=gzip -o exec=off -o setuid=off zroot/var/mail
zfs create -o exec=off -o setuid=off zroot/var/run
zfs create -o compression=lzjb -o exec=on -o setuid=off   zroot/var/tmp

chmod 1777 /mnt/tmp
cd /mnt ; ln -s usr/home home
chmod 1777 /mnt/var/tmp

sh
install_parts="base.txz kernel.txz lib32.txz"
cd /usr/freebsd-dist
export DESTDIR=/mnt
for file in ${install_parts};
do (cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/}); done
cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache
exit

ee /mnt/etc/rc.conf
defaultrouter="192.168.0.1"
ifconfig_re0="inet 192.168.0.254 netmask 255.255.255.0"
zfs_enable="YES"
sshd_enable="YES"

ee /mnt/boot/loader.conf
zfs_load="YES"
vfs.root.mountfrom="zfs:zroot"
autoboot_delay="2"

touch /mnt/etc/fstab
zfs set readonly=on zroot/var/empty
cd /
zfs umount -a
zfs set mountpoint=legacy zroot
zfs set mountpoint=/tmp zroot/tmp
zfs set mountpoint=/usr zroot/usr
zfs set mountpoint=/var zroot/var
zfs set mountpoint=/media zroot/media
#.....................................
newfs_msdos ada0p1
mount -t msdosfs /dev/ada0p1 /mnt
mkdir -p /mnt/efi/boot/
cp /boot/boot1.efi /mnt/efi/boot/BOOTx64.efi
mkdir -p /mnt/boot
cat > /mnt/boot/loader.rc << EOF
unload
set currdev=zfs:root/ROOT/default:
load boot/kernel/kernel
load boot/kernel/zfs.ko
autoboot
EOF
cp /boot/loader.efi /mnt/efi/boot/loader.efi
umount /mnt

reboot
============================================================
-----------------
С уважением,
Крылов Алексей
тел. +38 (067) 725 95 54
email: krylov at ukr.net
skype: krylov_alexey



More information about the freebsd mailing list