Home » Computer » Software » OS » Archive by category "FreeBSD" (Page 2)

Ubuntu 12.04 上用 KVM (CLI) 裝 FreeBSD

過年後在家裡弄了一台技嘉的準系統跑 Ubuntu 12.04,結果手上突然沒機器可以跑 porttools 測試,而這台機器平常也沒接鍵盤,就想直接跑 command line 的 KVMFreeBSD。其實知道方式後就很簡單,只是一開始沒弄懂花了不少時間...

首先是安裝 KVM,這部份用 apt-get install kvm 就可以拉下來裝好了。

真正要做的第一部是先用 qemu-img 建立 40GB 的 disk image (qcow2):

qemu-img create -f qcow2 ~/vm/image.qcow2 40G

然後直接用 iso image 安裝 (抓 iso image 的事情也跳過去請各位自己來),設為 4 CPU (-smp 4)、1024MB RAM (-m 1024),並且透過 serial console 安裝 (-nographic -curses),開機先從 cdrom 上開 (-boot d):

kvm -smp 4 -drive file=/abs/path/vm/image.qcow2,if=virtio -cdrom /abs/path/vm/FreeBSD-10.0-RELEASE-amd64-bootonly.iso -m 1024 -nographic -curses -net nic,model=e1000 -net tap -boot d

其中網路的部份卡了最久,後來發現預設值的 -net nic -net user 意思是:

  • -net nic 表示在 Guest OS 內建立一張網卡接到 KVM 的 vlan0。
  • -net user 表示在 KVM 的 vlan0 上建使用 userland mode NAT。

由於 userland mode NAT 很受限 (只有 TCP 與 UDP 會通),所以我用 -net nic -net tap 表示直接 bridge 到 virbr0 上再 NAT 出去。而我希望對 Guest OS 使用 e1000,所以最後就變成 -net nic,e1000 -net tap

接下來安裝 FreeBSD 時就可以用 DHCP mode 抓到 IP 了,由於我希望可以從 Host 直接連進去,所以我是設成 static IP。

裝完後就不需要掛 cdrom 與優先從 cdrom 開始開:

kvm -smp 4 -drive file=/abs/path/vm/image.qcow2,if=virtio -m 1024 -nographic -curses -net nic,model=e1000 -net tap

先前用 -hda /abs/path/vm/image.qcow2 掛上去,結果 i/o 很慢,被 delphij 提醒後改跑 virtio,速度就正常多了。不過這是因為 FreeBSD 10 就內建支援 virtio 了,如果是使用 FreeBSD 9 的需要另外再透過 ports 裝進去。

記錄下來給需要的人玩看看,下次也許應該玩玩看 VNC display?

FreeBSD 10 的改變...

Zite 上看到 FreeBSD 10 的改變:「FreeBSD 10's New Technologies and Features」。

最耀眼的當然是對 GCC 的宣戰達到高潮,第一個將預設編譯器換掉的 major release。同樣的,也把 GNU 的 libstdc++ 換成 MIT license 實作的 libc++。

再來是 ISCBIND 被換掉,改用 Unbound 以及 LDNS

然後 UFS 檔案系統可以透過 growfs(8) 線上長大... XDDD

其他的改善包括了 iSCSI stack 重寫,PF 防火牆可以善用 SMP 資源,以及 ZFS 的更新。等正式出版後應該還是會等到 10.1 再上 production 吧?感覺 compiler 一換不知道會有多少雷啊 XD

FreeBSD 的 portconf 新功能...

1.5 版的 portsconf 只能處理等號形式:

lang/php5*: WITH_FPM=yes

前幾天發現這對於某些設定很難處理,所以就在 ports/181119 送出 patch,讓 portconf 可以處理 += 的用法,讓設定更彈性。

結果發現作者就順便把去年十月的 ports/172355 債也還掉... 去年十月這個 pr 早就處理 += 需求,還修正變數名稱需要支援 -+ 的問題。

FreeBSD 上 Perl 升級的問題...

以往升級 Perl 後要跑 perl-after-upgrade -f,把本來在 /usr/local/lib/perl/5.12.4 的東西搬到 /usr/local/lib/perl/5.12.5 下,然後還是要到目錄下確認有沒有東西遺漏,漏掉的還是得用 portmaster 跑一次...

現在則是改成 /usr/local/lib/perl/5.12 這樣的路徑,把最後的 minor version 拿掉,至少同個主版本升級時 (5.12.x 之間) 比較不會痛了...

不過順便趁這次換成 5.16 好了,5.12 應該也快過保了...

FreeBSD 停止支援 7.4...

FreeBSD 7.4 只支援到 2013/02/28,過了一個禮拜後看起來也沒換日期 (FreeBSD Security Information),而 ports 宣佈不需要再支援 7.4 的公告也出來了:「[FreeBSD-Ports-Announce] [HEADS UP] FreeBSD Ports tree has been tagged with RELEASE_7_EOL」,所以 FreeBSD 7 系列算是退休了,現在 STABLE 只包括 8 與 9...

不過 8.3 與 9.0 都還是不穩 (userland 下跑個大一點的 phpunit 就會 kernel panic 是哪招 XD),所以這些跑 7.4 的機器得想辦法升級到 9.1...

在 FreeBSD ports 裡用 local patch 修正問題...

FastCGITrac,遇到 Trac 常常出現 MySQL server has gone away 的問題,官方看起來非常的 open source style:我沒遇到,不太想要處理這個問題... XD

Anyway,這個問題可以透過「#3645 (MySQL connections don't reconnect after idle timeout) – The Trac Project」的 comment:8 給 workaround 掉,但我不希望在升級後問題又跑出來,所以就用「Apache 2.2 worker MPM 與 mod_fastcgi 的問題」這邊的解法來解了:

www/trac: NO_CHECKSUM=yes | PATCH_SITES=http://freebsd-patches.s3.amazonaws.com/trac/ | PATCHFILES=patch-trac__db__mysql_backend.py

不過 NO_CHECKSUM=yes 有點討厭,來找看看有沒有辦法「增加 checksum」而非「忽略 checksum」...

redports.org 恢復部份功能...

redports.org 是一項提供給 FreeBSD ports maintainer 的服務,可以把 ports 丟上去讓大家在 submit/commit 之前測試看看有沒有問題。

服務在前陣子的 security intruson 而暫時離線後就開始重建 (參考 FreeBSD 官方在「FreeBSD.org intrusion announced November 17th 2012」的說明),直到今天才恢復部份功能。

目前只有開放讓之前有註冊的人可以 reset password,另外目前只有 9.1-RELEASE/amd64 與 9.1-RELEASE/i386 可以用,不過至少恢復部份功能讓大家測試。

在 Raspberry Pi 上跑 FreeBSD...

Raspberry Pi 的官方網站上提到可以在 Raspberry Pi 上跑 FreeBSD 的消息:「FreeBSD is here!」。

不過這是 community (unofficial) 版本,而且是 10-CURRENT,維護者自己也說這還不是 production-ready,主要是給大家嘗鮮用...

目前如果要拿來做一些正事,還是以 Linux 為主吧,畢竟是主力平台。

Archives