пятница, 25 февраля 2011 г.

Grub2 for FreeBSD with zfs+gpt && Ubuntu 10.10

Так случилось что каждую пятницу мы собираемся играть на работе в Counter Ctrike 1.6. На ноуте я держу FreeBSD Head amd64, но CS на моём Samsung R428-DA02 c Intel GMA 4500M под wine даёт 3fps'a...(если вы умеете стрелять с таким fps'om обязательно научите меня!). Для игры была поставлена ubuntu 10.10, но портовый grub2 не умеет zfs. Сборка grub2 1.99-rc1 под bsd была не очень удачна(надеюсь всё таки соберу позже [собрал на следующий день ;)]). Чтобы всё заработало мне понадобилась загрузочная флешка с ubuntu.
При установке убунты не стал ставить её загрузчик не пятница же :), поэтому:
загружаюсь с флешки и ставлю grub
так как у меня p1 freebsd-boot превращаем его в bios_grub:
# parted /dev/sda set 1 bios_grub on
Получил примерно такое:
############ubuntu parted#############
Число Начало  Конец    Размер     Файловая система  Имя     Флаги
1          17,4kB   82,9kB   65,5kB                                        bios_grub
2          82,9kB   1074MB 1074MB                              swap0
3          1074MB 108GB   107GB                                 zfs0
4          108GB   118GB    9999MB    ext4
5          118GB   119GB    512MB      linux-swap(v1)
6          119GB   250GB    131GB      btrfs
#############freebsd gpart#############
=>            34  488397101     ad4  GPT  (233G)
                 34        128           1  !21686148-6449-6e6f-744e-656564454649  (64K)
               162    2097152         2  freebsd-swap  (1.0G)
        2097314  209715200        3  freebsd-zfs  (100G)
     211812514       1886                - free -  (943K)
     211814400   19529728         4  linux-data  (9.3G)
     231344128     999424          5  linux-swap  (488M)
     232343552  256053248        6  linux-data  (122G)
     488396800        335                 - free -  (168K)
ну и установил
# mount /dev/sda4 /mnt
# mount --bind /dev /mnt/dev
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
# chroot /mnt
# grub-install /dev/sda
после успеха я перезагрузился, так как в ubuntu 10.10 тоже grub 1.98 обновляем до 1.99-rc1(после обновления попал... ещё раз восстановил загрузчик), ну и после добавляем в конец /etc/grub.d/40_custom
menuentry "FreeBSD" {
          insmod zfs
          search -s -l z
          kfreebsd /@/boot/kernel/kernel
          kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
          kfreebsd_module_elf /@/boot/kernel/zfs.ko
          kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
          set kFreeBSD.vfs.root.mountfrom=zfs:z
}
где z название пула
# update-grub2 
получил какой никакой gpt(FreeBSD HEAD zfs + Ubuntu + grub)

понедельник, 14 февраля 2011 г.

IPv6 tunnel on FreeBSD используя tunnelbroker.net

micro[14:42]> uname -v
FreeBSD 9.0-CURRENT #2 r216383M: Sun Dec 12 02:58:14 MSK 2010     root@micro:/usr/obj/usr/src/head/sys/MICROKERNEL

Регистрируемся, создаем тунельчик, получаем настройки, видим примерно это:
ifconfig gif0 create
ifconfig gif0 tunnel 1X8.12X.115.22X 216.66.84.46
ifconfig gif0 inet6 2001:470:XXXX:13dc::2 2001:470:XXXX:13dc::1 prefixlen 128
route -n add -inet6 default 2001:470:XXXX:13dc::1
ifconfig gif0 up
Пробуем, всё должно быть ok.

В rc.conf добавляем
#####IPv6#####
gif_interfaces="gif0"
#ipv6_enable="YES" # WARNING: The ipv6_enable option is deprecated. (HEAD)
ipv6_network_interfaces="gif0"
gifconfig_gif0="1X8.12X.115.22X 216.66.84.46"
ifconfig_gif0_ipv6="inet6 2001:470:XXXX:13dc::2 2001:470:XXXX:13dc::1 prefixlen 128"
ipv6_defaultrouter="2001:470:XXXX:13dc::1"
#############
Пробуем(если не делали ручками)
/etc/rc.d/netif start
/etc/rc.d/routing start

Радуемся.

вторник, 8 февраля 2011 г.

Static ipv6 на FreeBSD у хостера Hetzner

Быстрая настройка
Задача:
Включить поддежрку ipv6(на интерфейсе re0, uname -r 8.1-RELEASE) без перезагрузки.
Решение:
Получив ipv6 адрес и gateway /me был немного озадачен(так как плохо ещё знаком с ipv6). Было примерно так:

We have successfully setup the following IPv6 subnet for your server.
IPs: 2a01:XXXX:XXXX:XXX3:: /64
Gateway: 2a01:XXXX:XXXX:XXX0::1 /59
Useable IP addresses: 2a01:XXXX:XXXX:XXX3::2 to 2a01:XXXX:XXXX:XXX3:ffff:ffff:ffff:ffff
Суппорт дал ссылочку на http://social.bitmand.com/post/1168584251/hetzner-freebsd-and-ipv6 в принципе всё так только немного проще

Добавляем в /etc/rc.conf

############ipv6############
ipv6_enable="YES"
ipv6_network_interfaces="re0"
ipv6_ifconfig_re0="2a01:XXXX:XXXX:XXX3::2 prefixlen 64"
ipv6_default_interface="re0"
ipv6_static_routes="gw defgw"
ipv6_route_gw="2a01:XXXX:XXXX:XXX0:: -prefixlen 59 -iface re0"
ipv6_route_defgw="default 2a01:XXXX:XXXX:XXX0::1"
############################
Объясняю различия, почему нет ipv6_defaultrouter. При /etc/rc.d/network_ipv6 start получим ошибку, так как default route будет пытаться прописаться первым... по ссылке суппорта есть другое решение.

После добавления:

/etc/rc.d/network_ipv6 start
Выставляем интерфейс по умолчанию:
ndp -I re0
"And bingo! IPv6 up and running."
Проверим:

ping6 ipv6.google.com
PING6(56=40+8+8 bytes) 2a01:XXXX:XXXX:XXX3::2 --> 2a00:1450:8005::93
16 bytes from 2a00:1450:8005::93, icmp_seq=0 hlim=57 time=16.731 ms

И не забывайте про firewall, пример для проверки:
ipfw add 10 pass ipv6 from any to any via re0

Надеюсь кому-то сэкономит немного времени