如何增加 kernel 最大允许使用的 loop device 个数

整理下笔记。kernel 默认编译是最大允许 8 个 loop 设备,见到 mount: could not find any free loop device 错误时就该处理了,要么释放一些 mount,要么提高这个上限,方法是(以提高上限到 32 为例)

先修改 /etc/modprobe.conf (2.6 内核),增加

options loop max_loop=32

然后 umount 所有的 loop 设备(用 mount 命令查看),再卸载 loop 模块

rmmod loop

如果发现所有 loop 设备都 umount 了 rmmod 还是报 ERROR: Module loop is in use,使用 losetup

losetup -a                      # 查看 loop 设备使用情况
losetup -d /dev/loop1 # detach 设备(example)

再重新加载 loop 模块检查是否生效

modprobe loop
dmesg | grep loop # 应当能见到 loop: loaded (max 32 devices)

最后建立 loop 设备文件

ls -d /dev/loop*
for ((i=7; i<32; i++)); do
mknod -m0660 /dev/loop$i b 7 $i
chown root.disk /dev/loop$i
done

Mar 9, 2010 at 3:27pm | 0 Comments
Tags: and

被自家狗咬了

事发时狗在我脚边开心地啃骨头,我想把小电脑桌移近一点,由于狗挡住了小电脑桌的桌腿,我准备把它拨到一边再移动电脑桌。其实以前曾多次在狗啃骨头的时候在旁边威胁它,观察其反应,只要手离它的距离超过它离骨头的距离,狗一定是选择紧紧护住骨头同时发出极具威摄力的低吼而不会主动攻击。但这次我低估了这条狗对几块啃得已经没什么内容了的骨头的喜爱程度,就在我手碰到它脑袋的一刹那,它给了我一口。

伤口在右手中指第一个指节,很小但是见了血。狂犬病致死率是 100%,虽然这条狗每年都接种疫苗,在领导劝说下,还是选择去注射疫苗。

处理办法:立即对伤口进行清洗,挤压伤口周围排出污血,用肥皂水冷水反复冲洗,然后用酒精擦洗外表面,不要包扎,24 小时之内去医院注射疫苗

我是第二天一早去的,海淀医院的服务态度明显有提高。我注意到注射疫苗是在急诊部。被狗咬伤的还不少,但被自家狗咬的可能就我一个了。狂犬疫苗是要在第 1、4、8、15、29 天分 5 次注射,国产疫苗价格 245 元。注射后饮食忌烟酒、辛辣、浓茶、咖啡总之一切刺激性的事物都不要吃。

被自己养大的狗咬,这感觉很不好受。

Mar 8, 2010 at 11:01am | 2 Comments
Tags:

路盲的行车路线

上周末从机场 T3 航站楼接丈人回来,预先规划的路线是这样子的:

关键时刻手机 Route 66 程序接收不到 GPS 信号了,导致错过了机场第二高速出口,硬着头皮往前开,直到看到熟悉的路标才绕回来。刚才在地图上看了下,实际行车路线原来是这样的,多走了 13 公里,囧啊。

话说买车之前最担心的就是认路,自己这方面很弱,偏偏又是个很难信任其他人(事)的人,只要是没走过的路,哪怕出发前地图查得再详细,心里仍然是没底。手机上这个导航程序有点太弱了,不能报路名,太难让我信任了。路牌的给的信息也觉得不符合我的逻辑,对于一个大脑反射弧正在变长的人来说,路牌上应该有岔口附近的缩略图,字号能再大一些,好给我足够反应时间 :D,看来是要买个专业点的 GPS 了。

Jan 22, 2010 at 9:39pm | 1 Comment
Tags:

祝你我好运

早就觉得不对劲,项目越做越糟,靠这样的质量很难想象有客户会付钱,以前比较活跃的几个开发人员在邮件中也难见身影了,半年前 director 回美国去了另一个部门,换了个 director 两个月后干脆辞职去了一个小的创业公司。我跟老婆戏说:迟早整个部门要被砍掉。

没想到这么快应验了。裁员二十多人,大部分是一些比较 junior 的开发人员,尚有机会转去其他部门,两个 QA 是立即执行--午饭后通知,下班前收拾好东西离开。其中一个是我上一家公司的同事。

外企就是这么冷酷无情。

虽然并不怎么喜欢这人,下班时还是去他的工位,简单聊了几句,给了他一个猎头电话。虽然强带笑容,看得出他很沮丧。他能力不怎么样,多少有些怨不得别人的因素,但他年过三十,小孩才刚 1岁,还得养家糊口,以眼下的就业形势,出去再找到相当薪水的工作恐怕是很难了。

工位暂时空着了,去饮水机灌水路过时总会想,不知道有朝一日同样的事情发生在我头上会怎么样,祝你我好运吧。

Jan 22, 2010 at 5:13pm | 3 Comments
Tags:

迅速步入中年人行列

都说成为房奴之后就是中年人了。本人不才,没能力成为大房奴,然而还是不可避免的迅速步入中年人行列了。

  • 不愿意折腾,桌面系统已经一年多没有主动升级过任何软件包,blog 任其长草
  • 学不进新的东西,拿到 Google Wave 帐号后四处点了一会就腻了
  • 觉得 ruby 语法很土,坚持用 bash 写脚本,规模到了 8000 行还觉得很爽
  • 上水木看不懂版上的术语“杯具”、不知道春哥教的来历,跟某大学古董叫兽批判学生考四级前拜春哥其实是一个性质了
  • 除了吃喝拉撒和家务,闲下来就没有事情做了,不看电视,不玩游戏,不下围棋。只能连公司 VPN 干活
  • 听不了快节奏的音乐,觉得很吵。看不了湖南卫视快乐大本营,觉得低俗
  • 熬不了夜,11 点前必睡,睡不了懒觉,越是周末越醒得早

一直不愿意承认步入了 30 岁,原来自己的生活形态早就是了。

Dec 29, 2009 at 11:36am | 3 Comments
Tags:

又一个 ksh 的 bug

见鬼的事怎么总是我碰上。

$ cat kshbug
{ return 0; } &
evil=$(/bin/true) # XXX: works fine without this line
wait $!
echo $?

$ ksh kshbug
127

$ ksh --version
version sh (AT&T Labs Research) 1993-12-28 r

The correct return code should be 0. Without the line of "eval=$(bin/true)"
everything works fine. The problem happens only when

  1. Execute a function or a clause in background, and
  2. A subshell is invoked between the background execution and the "wait", and
  3. An external command is executed in the subshell

I googled for a while, there's no ksh bug report so far, workaround could be use output text for return code check instead. Note there's a similar report for ksh on solaris but it's not the identical issue.

Pdksh (public domain ksh) doesn't have the problem. (See another bug.)

Update: this issue doesn't happen on Ubuntu ksh version "sh (AT&T Research) 93s+ 2008-01-31".

Nov 9, 2009 at 3:37pm | 1 Comment
Tags:

Review

原来我已经 5 个月没碰这里了。最忙的时候过了后生活实在是太简单了,除了上班下班做饭吃饭遛狗爬山就没有别的了,不抽烟不喝酒不社交不下棋,我已经提前进入老年化生活阶段了。翻看旧帖,年初时许了个愿,看看完成得怎么样了。

> 1. 管理自己和老婆的健康,少宅多运动

无非是带着破狗爬了几次香山,差强人意。

> 2. 工作上争取“出人头地”,令同事信服,老板放心

薪水没加,责任没少,表现平平,不过尔尔。倒是悟到一条心得略感欣慰:只要设计得当,shell 脚本也可以“面向对象”。

> 3. 提高涵养,不斗气,对事对人能包容,做事要与年龄相称

这其实很难,成为老婆的司机后我努力在这方面提高,还远不够...,

> 4. 拿到驾照

算是超额完成。

> 5. 攒房子

以北京现在的房价,换大点的房子是遥遥无期了。每月又多出油费支出,这个目标更远了 :-(

Nov 8, 2009 at 8:19pm | 3 Comments
Tags:

我升职了

今天老板召我去他的办公室,笑眯眯滴向我宣布升我职已经批准了,就等大老板正式宣布了。丫说,但是现在大形势不好,上个月通知的公司全员降薪也是没有办法,这次虽然升职但暂时还不能加薪,丫然后给我画了张饼,“等过上几个月形势好了再把这个缺口给你补上”,“希望可以激发你的斗志”。

丫比我更 high,因为不多花一分钱,却可以名正言顺要老子做更多事情,faint。

Jun 11, 2009 at 9:22pm | 2 Comments
Tags:

ping 不通怎么度量延迟

公司 VPN 网关都过滤了 ICMP,ping 是不通的,恼火完了之后想到可以从 connect() 入手,看一下连接主机某个端口要多长时间,精度足够了。别去写 code,有现成的工具 netcat,在 Linux 系统上基本上是标配,用端口扫描选项 "-z" 去连 www 端口 80 可也。

$ host example.org
example.org has address 208.77.188.166

$ time nc -z 208.77.188.166 80
real 0m0.075s
user 0m0.000s
sys 0m0.000s

先解析出 IP 是为了更精确的,不计算域名解析的时间。

May 28, 2009 at 9:49am | 0 Comments
Tags:

换到 Habari 了

换过来的原因很简单,这个 VPS 只有 64M 内存,我要多留些内存给 sshd 做穿墙隧道,同时还要起个 vpn client,于是拿 mysql 开刀。找了一圈支持 sqlite 的感觉也就 habari 值得尝试了。一个小小的 blog 么,完全用不着 mysql。

除了跟 lighttpd 的 rewrite 规则斗争之外,感觉还是相当不错。自带插件可以从 wordpress 数据库导入所有东西,装了 RN Custom Permlink 可以定制 permlink 保持跟以前的一致,就是两个 feed 地址实在恼人,最后在 Wayne 同学的指导下自己弄了个插件直接把 Wordperss 形式的 feed 地址转向。lighttpd 为什么不行,因为它 rewrite 之后并不会修改 REQUEST_URI,而 habari 把 index.php 也处理成 slug...,这时候就看出来 nginx 的好了,它可以只转向不对应实际存在文件的 URL,真不明白怎么 lighttpd 一直不加这个(民间有 patch),影响性能?

URL rewrite 的解决方法应该可以从 DB 直接入手,等有空再研究研究,habari 还是很强大的。希望 UI 方面不要再加华丽的东西了,就现在这样就非常好了。

May 26, 2009 at 2:38pm | 4 Comments
Tags:

 1 2 3 … 25 Next →

Tags

Blogroll

Fairy World | STUPiD | 阅微草堂 | ShelleX | 流浪五天