我在公司的机器没有光驱,有Ubuntu的Desktop安装盘也没有用,捣鼓了很久的硬盘安装也没有成功,因为Ubuntu Dapper使用了Live CD的启动方式。而我尝试过唯一能从硬盘ISO安装成功的就是Fedora Core 5了。
在研究了数周毫无结果就要放弃的时候,我突然灵机一动,觉得既然Ubuntu Dapper的CD就是一个完整的Linux系统,那何不直接拿来用呢?在经过了一整夜的研究之后,我终于用这种丑陋的方法,将Ubuntu Dapper装在了没有光驱的机器上。
具体步骤如下:
进入原有的Linux系统,先对系统进行分区,将目标系统的root分区准备好,并挂载在某个目录比如/target下,然后将其他分区准备好,相应挂载在/target下(比如/usr, /var, /home等)。在此不赘述,可以参考Gentoo的磁盘准备的教程。
使用
mount -o loop -t iso9660 [ISO文件路径] [挂载路径A]
将镜像挂载到某个目录下A,这里我使用的镜像是Ubuntu Dapper的desktop安装镜像。
然后再用
mount -o loop -t squashfs A/casper/filesystem.squashfs [挂载目录B]
,因为Ubuntu Dapper的Live CD的文件系统内容都是以squashfs形式压缩在光盘的casper/filesystem.squashfs文件中的。
在刚刚挂载好的Live CD的目录B中,复制所有文件到/target下,
cp -p -r B/* -t /target
其中-p表示保留所有的文件权限信息,-r表示递归复制。这时候基本的系统内容就有了
如果有chroot,也可以调用:
chroot /target /bin/bash
(以下假设运行了这条指令,根目录转到了/target中)
准备/etc/fstab,起初的内容都是空的,根据自己分区的情况酌情编写,以下是一个参考例子:
# [...]
最近开发Python,数据库操作一直用的是SQLObject,但有个问题很让我头疼,就是MySQL的数据库的编码问题,主要是MySQL的。
起初我现在我在SQLite上测试开发,并没有出现问题。SQLObject的UnicodeCol工作很正常。而同时起初数据库中并没有任何非ASCII字符(也就是全英文),而后需求变化,增加了欧洲的一些内容,就涉及到latin1编码了,但奇怪的是,只要超出ascii范围(比如中文),即便通过Python将其转化为Unicode或者UTF-8编码的str(使用decode和encode方法),SQLObject在插入的时候就会出错。后来经过反复的检查,是MySQLdb的一个问题,SQLObject会通过获取数据库链接的character_set_name(),取得链接的字符集,然后对查询进行编码以符合这个字符集,但据调试,无论我用什么方法,比如链接的set_character_set()方法、执行“SET NAMES UTF8”这个语句,character_set_name()都总是返回“latin1”,这些可苦了我了,不知道这是不是算一个Bug。
根据一些参考资料:
Comparison of file systems – Wikipedia
Linux File System Benchmarks
Benchmarking Filesystems Part II
对主流的Linux操作系统所使用的文件系统ext2/3、jfs、reiserfs(v3/v4)、xfs作了一些评估,这里得出的结论是,
ext2由于没有日志记录功能,所以性能很好——当然也不够强壮和安全。
ext3性能最差(期待ext4)
jfs的平均CPU占用最低,如果系统运行于一个对CPU占用率有限制的系统中,考虑使用jfs
reiserfs的硬盘IO带宽占用率最低,如果系统运行于一个对于硬盘带宽有限制的系统中,考虑使用reiserfs,尤其是reiserfs v4。
xfs则是介于jfs和reiserfs之间,各种情况下都是比较好的选择。
一直想写篇关于时间的帖子,无奈本人数学功底太差,对于几位大科学家的理论几乎根本无法理解,不过,还是要在此讨论一下自己的看法。
当大家谈到时间旅行(主要指回到过去)的时候,都会提到一个著名的悖论——一个人回到过去,将其父亲/母亲/祖先杀了,那么他从哪里冒出来的呢,他又算什么“东西” 呢?这个逻辑上的矛盾一直困扰着大家,记得看到书上说,霍金认为,宇宙会在对这种动作有某种程度上保护,阻止这种行为的发生。我渐渐觉得,在时间旅行的问题上深入的越久,人就越容易陷入现在认为错误的“宿命论”的泥潭中。
首先,并不一定是这类回到过去的行为是一种悖论,只要是想回到过去,其实都是为了产生这种悖论的。为什么呢?你只要问问自己,如果你能回到过去,你会去做什么事情——肯定会是一些你一直后悔的事情。比如某个人的亲人死了,所以他要回到过去,去救他的亲人,但他如果成功了,那么过去的那个他再度到现在这个时候,他就无须再次回到过去了,因为他亲人没死。再比如,机器猫上的大雄,考试没及格,坐时间机器回到考试前一天,将答案告诉过去的他,那么过去的那个他如果考试通过了,那么考试过后,就无须再回到过去完成这个“使命”。还有,周杰伦唱的那个“就回到过去,试着让故事继续……”,但若是故事按照他所期望的发展下去,那他还要这样去后悔么?
所以,要么是这种逻辑在时间的问题上不适用,要么就是,想回到过去改变过去,是不可能成功的,既然不可能成功,那么,这就是一种“宿命”。
其实还可以有另一种考虑方法,如果你回到过去了,帮助了过去的你,那么过去的你的记忆中应该知道你回去过了,而且,你知道将来的某个时刻,你还会像当时一样回去,去完成你的“使命”,这又陷入了宿命的怪圈中。
所以,我也认为,现在单纯的单向的时间旅行是不存在的,也就是说,未来的某个时刻的人,单方面要回到过去,只能是一厢情愿,必须要靠过去的那个时刻的人的共鸣,或者召唤,两个时间点上一起产生作用,才能打开时间的隧道。
另外,还有一个矛盾,就是和广义能量守恒定理之间的矛盾。它基本理论是这么说的:
“物理学宇宙(简称宇宙)是由多种形式的能量组成的,或者说宇宙的本质就是能量(广义)或物质(广义),各种能量形式可以相互转化而总量守恒。”
但如果有了时间旅行,那未来的时间来的物质,能回到过去,但这些物质回去了就不走了的话,那么这个定律就不适用了,可以需要在更广义的条件下进行定义。
还有就是那个很著名的一个人的故事,也是关于时间悖论的:
一九四五年的一天,克力富兰的孤儿院里出现了一个神秘的女婴,没有人知道她的父母是谁。她孤独地长大,没有任何人与她来往。
直到一九六三年的一天,她莫明其妙地爱上了一个流浪汉,情况才变得好起来。可是好景不长,不幸事件一个接一个的发生。首先,当她发现自己怀上了流浪汉的小孩时,流浪汉却突然失踪了。其次,她在医院生小孩时,医生发现她是双性人,也就是说她同时具有男女性器官。为了挽救她的生命,医院给她做了变性手术,她变成了他。最不幸的是,她刚刚生下的小女孩又被一个神秘的人给绑走了。这一连串的打击使他从此一蹶不振,最后流落到街头变成了一个无家可归的流浪汉直到… …
一九七八年的一天,他醉熏熏地走进了一个小酒吧,把他一身不幸的遭遇告诉了一个比他年长的酒吧伙计。酒吧伙计很同情他,主动提出帮他找到那个使‘他’怀孕而又失踪的流浪汉。唯一的条件是他必须参加伙计他们的‘时间旅行特种部队’
他们一起进了‘时间飞车 ’。飞车回到六三年时,伙计把流浪汉放了出去。流浪汉莫明其妙地爱上了一个孤儿院长大的姑娘,并使她怀了孕。伙计又乘‘时间飞车’前行九个多月,到医院抢走了刚刚出生的小女婴,并用‘时间飞车’把女婴带回到一九四五年,悄悄地把她放在克力富兰的一个孤儿院里。然后再把稀里糊涂的流浪汉向前带到了一九八五年,并且让他加入了他们的‘时间旅行特种部队’ 。
流浪汉有了正式工作以后,生活走上了正轨。并逐渐地在特种部队里混到了相当不错的地位。有一次,为了完成一个特殊任务,上级派他飞回一九七零年,化装成酒吧伙计去拉一个流浪汉加入他们的特种部队。
这个逻辑相当混乱的故事中,只有一个人,其实,仔细分析,就会发现,那个特种部队中,其实他的上级就是这个人,而部队中所有人都是这个人,这个人在这种逻辑混乱中,不断通过时间悖论来复制自己,有点像那个黑客帝国中的特工Smith吧,算是宇宙这个大Matrix中的病毒吧。不知道这里面能量是否守恒。
还有关于时间裂缝,就是说某些人一直生活在某两个时间点之间,他过完了这段时间后,就重新回到起点,再过这个时间,永远没有尽头。奇怪的是,一,他是如何进入到这个时间裂缝中的,二,如果他知道自己陷入了时间裂缝,为什么不能从中跳出来呢?因为不可抗拒的“宿命”?在一瞬间时间无限制地叠加在他的身上?从无中诞生,最后又归于“无”。
写到这儿,差不多把我所知道的一些疑惑都列举出来了,不知道人类还有多久的时间,能去解决这些问题,不过,如果人都不死的话,谁去管这些事情呢,呵呵。