?lsdev -v
disk0:
disk0p1: FreBSD boot 64KB
disk0p2: FreBSD swap 4G
disk0p1: FreBSD ZFS 294 GB
pxe devices:
Вот скрипт:
Код: Выделить всё
#!/bin/sh
export path=/sbin:/bin:/usr/sbin:/usr/bin:/mnt2/sbin:/mnt2/bin:/mnt2/usr/sbin:/mnt2/usr/bin
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mnt2/sbin:/mnt2/bin:/mnt2/usr/sbin:/mnt2/usr/bin
gpart delete -i 3 ad0
gpart delete -i 2 ad0
gpart delete -i 1 ad0
gpart destroy ad0
dd if=/dev/zero of=/dev/ad0 count=2
sleep 5
kldload /mnt2/boot/kernel/opensolaris.ko
kldload /mnt2/boot/kernel/zfs.ko
echo 'load kernel modules'
sleep 5
gpart create -s gpt ad0
echo 'partition created'
sleep 5
gpart add -s 64K -t freebsd-boot ad0
gpart add -s 4G -t freebsd-swap -l swap0 ad0
gpart add -t freebsd-zfs -l disk0 ad0
echo 'slices created'
sleep 5
gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad0
echo 'boot code created'
sleep 5
sysctl kern.geom.debugflags=0x10
sleep 5
mkdir /boot/zfs
zpool create -f zroot /dev/gpt/disk0
zpool set bootfs=zroot zroot
echo 'zroot created'
sleep 5
zfs set checksum=fletcher4 zroot
echo 'checksum switched'
sleep 5
zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp
chmod 1777 /zroot/tmp
echo 'zroot/tmp created'
sleep 5
zfs create zroot/usr
zfs create zroot/usr/home
cd /zroot ; ln -s /usr/home home
echo 'zroot/usr created'
sleep 5
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
echo 'zroot/ports created'
sleep 5
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/usr/src
echo 'zroot/src created'
sleep 5
zfs create zroot/var
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 /zroot/var/tmp
echo 'zroot/var created'
sleep 5
cd /dist/8.0-*
export DESTDIR=/zroot
for dir in base catpages dict doc games info lib32 manpages ports; \
do (cd $dir ; ./install.sh) ;
done
cd src ; ./install.sh all
cd ../kernels ; ./install.sh generic
cd /zroot/boot ; cp -Rlp GENERIC/* /zroot/boot/kernel/
echo 'kernel builded'
sleep 5
zfs set readonly=on zroot/var/empty
echo 'zroot/var/empty set to ro created'
sleep 5
echo 'zfs_enable="YES"' > /etc/rc.conf
echo 'hostname="mydomain.local"' >> /etc/rc.conf
echo 'ifconfig_re0="DHCP"' >> /etc/rc.conf
echo 'rc.conf created'
sleep 5
echo 'zfs_load="YES"' > /boot/loader.conf
echo 'vfs.root.mountfrom="zfs:zroot"' >> /boot/loader.conf
echo 'loader.conf created'
sleep 5
echo 'LOADER_ZFS_SUPPORT=YES' > /etc/src.conf
cat >/zroot/mkd.sh <<EOF
#!/bin/sh
mount -t devfs devfs /dev
zfs set readonly=on zroot/var/empty
export DESTDIR=""
cd /usr/src/sys/boot/
make obj
echo 'obj created'
sleep 5
#>> /var/log/make.log
make depend
echo 'depend created'
sleep 5
#>> /var/log/make.log
make
echo 'make created'
sleep 5
#>> /var/log/make.log
cd i386/loader
make install
echo 'make install created'
sleep 5
#>> /var/log/make.log
cd /etc/mail
make aliases
umount /dev
EOF
chmod +x /zroot/mkd.sh
chroot /zroot /mkd.sh
echo 'switched to chroot /zroot'
sleep 5
cp /boot/zfs/zpool.cache /zroot/boot/zfs/zpool.cache
echo 'zpool.cache created'
sleep 5
cat << EOF > /zroot/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/gpt/swap0 none swap sw 0 0
EOF
echo 'fstab created'
sleep 5
export LD_LIBRARY_PATH=/mnt2/lib
zfs unmount -a -f
echo 'zfs unmounted'
zfs set mountpoint=legacy zroot
zfs set mountpoint=/tmp zroot/tmp
zfs set mountpoint=/usr zroot/usr
zfs set mountpoint=/var zroot/var