четверг, 16 июня 2011 г.

Grub 1.99~rc2 incoming

Вчера не обнаружив в портах grub 1.99~rc2 попробовал собрать, на моё удивление собралось без проблем(потребовало правда flex не тот что в системе). Если всё хорошо сегодня оформлю порт и засабмитю PR ;)
Письмо с патчем в аттаче http://groups.google.com/group/mailing.freebsd.ports/browse_thread/thread/5c9cfe94ba060d15/786074893eabd001?lnk=raot
P.S. Если всё ок, то скоро будет в дереве портов и наверно напишу как оно "готовится" ;)

понедельник, 21 марта 2011 г.

Comfortable rotation log with newsyslog

Задача ротировать логи на FreeBSD 8.1
Раньше приходилось использовать различные костыли(что мне не очень нравилось) решил поглядеть что же умеет newsyslog, как оказалось он умеет всё что нужно простому смертному ;)
1. <include> удобное подключение конфигов
2. -t or time-stamp добавление time-stamp'a к имени архива(место каунтера)
То есть сейчас можно спокойно добавить:
<include> /usr/local/etc/newsyslog/www/*.conf в /etc/newsyslog.conf
создаём /usr/local/etc/newsyslog/www/site.conf он будет выглядеть примерно так :
/www/site/logs/*.log  644  60   *   @T00   BCJ   /var/run/httpd.pid 30
да и не забываем поменять запуск newsyslog'a в /etc/crontab
0       *       *       *       *       root    newsyslog -t DEFAULT
после этого получаем мягкие ламповые^W^Wудобную ротацию логов вида:
-rw-r--r--  1 root  wheel   827 Mar 16 00:00 access.log.20110316T000000.bz2
-rw-r--r--  1 root  wheel   841 Mar 17 00:00 access.log.20110317T000001.bz2
-rw-r--r--  1 root  wheel   848 Mar 18 00:00 access.log.20110318T000000.bz2
-rw-r--r--  1 root  wheel   822 Mar 19 00:00 access.log.20110319T000000.bz2
-rw-r--r--  1 root  wheel   944 Mar 20 00:00 access.log.20110320T000000.bz2
-rw-r--r--  1 root  wheel   837 Mar 21 00:00 access.log.20110321T000000.bz2

P.S эти изменения добавлены уже после выхода 8.1 по этому я забрал newsyslog из svn://svn.freebsd.org/base/head/usr.sbin/newsyslog ;) собрал и установил, много радовался.

пятница, 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

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