五月 14, 2008
» [tips] 如何讓你的ext2/ext3在神出鬼沒的地雷戰場上存活.

喜歡用自由軟體的人其實應該都滿常遇到地雷,
通常也練就了一身人間即時掃雷機的本事,
但有些時候實在是地雷太小顆 (但是倒炸的很大力),
又發生在想都想不到的地方, 要讓人不嗚呼哀哉也難.
就像開車時你不超車會有別人超車,
你不想用新版會有別人用新版,
軟體相容性的問題往往是會不請自來的.

lloyd大大今天跟我說了一個最近踩到地雷的故事,
他拿了一顆用ext2格式化過的400g硬碟,
拿到他弟弟灌了ext2 driver的windows上執行,
之前好一陣子都能讀取寫入, 操作上都沒問題,
最近卻怎麼格式化都不能用.
(在windows上會問你要不要重新格式化)
換了小一點的硬碟也不行. 最後他深入追查才發現es2fprogs這個最近更新的套件更新了mkfs.ext2這個程式, 預設的inode改變成256 bytes. 所以要用
mkfs.ext2 -I 128 讓預設的inode設成原本的128 bytes.

ok問題解決了, 聽起來只是windows ext2 driver跟e2fsprogs相容性的問題對不對?
但仔細一想問題可能就很大了, 今天你在debian lenny格式化了一顆ext2硬碟, 要放到穩定的重要server上(恰巧是debian sarge),卻不能讀了.
今天如果你沒有"恰巧"讀到這段,


E2fsprogs 1.40.5 (January 27, 2008)

Fix a potential overflow big in e2image if the device name is too long.

Mke2fs will now create new filesystems with 256 byte inodes and the ext_attr feature flag by default.
This allows for much better future compatibity with ext4 and speeds up extended attributes even on ext3 filesystems.

並把他放在心上的話, 你很可能就炸掉了.
(不過事實上可能就算你讀到這段也還是會被炸掉...)

此外/boot通常有人會用ext2而非格式化成xfs或raiser3什麼的(甚至連ext3都不用, 因為穩定),也免不了會踩到這個雷,
這裡"恰巧"就有個血淋淋的例子. (GRUB vs. the Inodes: Who Needs a Bootable System, Anyway? ) 喔, 只是不能開機而已嘛...orz

備註:
e2fsprogs version:
Gentoo-stable: 1.40.8
lenny (next debian stable): 1.40.8
etch (debian stable): 1.39+1.40

重要指令:

mkfs.ext2 -I 128 /dev/???
mkfs.ext3 -I 128 /dev/???

如果你還要向前相容性的話, 從現在開始別忘了mkfs.ext3時加上-I 128 , 否則... 就歡樂的炸吧... XD

感謝lloyd大大更正: 在debian etch (kernel 2.6.18) 上應該還是可以讀取256 bytes inode的格式, sarge是2.4 kernel可能就不行了. (根據mkfs.ext2的man page說法是2.4 kernel會沒辦法mount)

update: fix link.

七月 22, 2007
» Xen Merged into Linux 2.6.23

http://kerneltrap.org/node/13917, 來自kernel trap的最新消息.

Xen是一個開放原始碼虛擬機監視器,
簡單的說, Xen可以讓一台機器同時跑好幾個作業系統,
而且模擬的速度接近原本cpu速度.
(目前就我所知執行速度是比User mode linux/KVM/kqemu都快的多,
跟qemu/virtualbox/vmware當然更不是同一個檔次的)

前陣子才剛在一台debian etch(dom0)上安裝netbsd跟freebsd的domU,
(DomU 其實就是Xen對guest OS的術語. 而Dom0就是host os.
netbsd是*bsd裡對xen支援最完善的,
目前3.1 release版本就直接支援, 既可以當host OS也可以當guest OS.
如果有人想安裝FreeBSD作guest OS的話, 我建議可以直接參考FreeBSD handbook,21.2.2.1 Setup Xen 3 on Linux dom0,有個不怎麼新的7-current(N個月前的)可以玩,有VT支援的cpu的話應該就比較簡單一點,
也因為我身邊沒半台可以支援VT的cpu(啥怪cpu都有就是沒intel core2duo XD),不然應該可以裝個windows當guest os)
但是說真的, 目前安裝xen還是有點麻煩,
不過我想xen merge進i386的linux之後,
xen應該會越來越得到關愛的眼神才對.
以後搞不好哪天apt-get install xen-netbsd-domU-image就裝好了. (希望啦 XD)

(ps: 差點忘了提最大的重點/亮點:
除去kernel部份 xen大部分的程式碼都是用python寫的!! XDXDXD)

biggo.com.tw

A Django site.