Nov 6
详细说一下feli遇到的问题。

    首先需要了解一下,硬盘的0柱面0磁道1扇区保存了一个512Bytes的结构信息,叫做MBR(Main Boot Record),中文名为“主引导记录”。我们的电脑启动的时候,在开机POST自检后就会将MBR载入内存,然后运行MBR中的代码。在MBR前446个字节是引导代码,接下来的64个字节叫做硬盘分区表(Partition Table),其中保存了一个包含4个16字节记录的结构,每个记录里保存了硬盘中一个分区的信息(起始地址、分区类型、可否引导等),最后再跟上两个字节0x55 0xAA表示MBR结束。因此硬盘最多可以有4个分区,可以是4个主分区,也可以最多是3个主分区和1个扩展分区;每个扩展分区又可以分成数个逻辑分区。每个分区的第一个扇区(512Bytes)也保存了一个类似MBR的文件结构,叫做DBR,如果是逻辑分区的DBR,还包含了下一个逻辑分区的信息(起始地址等);这样就构成了我们平时见到的所有的硬盘分区方式。

    windows在安装过程中会修改MBR的内容,把启动代码替换成它自己的启动代码,同时会把它的引导文件(NTLDR, NTDETECT.COM, BOOT.ini)放到一个主分区中,并且在MBR的记录中标记这个分区是可启动的,然后就会通过BIOS->MBR->可引导分区DBR->NTLDR(读取boot.ini的配置)->Windows 这样的顺序启动Windows。所以在安装windows的时候,必须要有一个主分区是windows可以识别并读写的,比如fat16/fat32/ntfs等。

    feli的硬盘分区比较奇怪,第一个主分区是linux的swap分区,剩下的是一个扩展分区,里面包含了2个linux的ext3分区和一个ntfs分区。这样的分区结构是不适合直接安装windows的,他把XP安装到了那个ntfs分区中,于是在安装完以后,系统就根本无法启动了,在启动的时候显示类似 Invalid ooxx 之类的错误;启动Ubuntu 8.10 LiveCD的Partition Editor,发现整个硬盘的分区结构已经消失了,变成一整个未分区的硬盘。

    分析可知是windows修改了MBR中的分区表,可能是改成了从那个swap分区启动,也可能是修改成了从那个ntfs分区启动,总而言之是无法正常启动的;但是肯定没有修改其他分区的结构,也就是说只要重建了分区表就OK。于是到我的机器上找了一下,发现在深山红叶V30里面有一个MHDD硬盘修复软件,可以自动搜索分区并写入分区表,重建MBR的结构。

    于是刻了一张盘,到Feli的机器上,从CD启动,选择引导到DOS工具箱,引导到帮助菜单以后,输入MHDD,回车,进入这个软件,会提示(英文)你硬盘上没有分区,是否需要搜索,选择yes,然后会问你是自动(Auto)还是交互式(Interactive),以及取消。最好是选择Interactive,然后会在搜索到一个分区以后显示分区的起始位置以及大小,并提示你是否需要保存到分区表,大概对比一下你的硬盘结构,如果是,就选择save。很快就会把硬盘搜索完,然后会进入它的主界面,就可以看到恢复出的硬盘结构。选择第一个菜单(貌似是General),选择Save,退出,重启,Oh yeah,见到了熟悉的Ubuntu 8.10 ^^
Nov 6

Linux 信号 不指定

felix021 @ 2008-11-6 00:45 [IT » 操作系统] 评论(0) , 引用(0) , 阅读(3600) | Via 本站原创
Nov 5
Cannot connect to the mysql server.Error:
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

cpp可以正常编译,但是在连接数据库时会出现这个错误
是因为没有在mysql_real_connect里面指定参数,应该这样:
mysql_real_connect(ssock,"localhost","root","password","databaseName",0,"/tmp/mysql.sock",0)

如果是在mysql -uroot -p的时候出现这个错误
则应该查看一下mysql的配置文件,找到socket文件的位置如 /tmp/mysql.sock
然后 mysql -uroot -p --socket=/tmp/mysql.sock
Nov 4
这两天在看密码学的大作业,写一个DES加密程序,里面有很多涉及位运算的东西。
虽然直接用bitset写,但是非常非常地不顺手,于是自己写了一个类,里头有DES需要的运算,恩。
如果谁发现有错的话,麻烦告诉我一声。

好久没有写这样的代码了,一个简单的类居然花了这么久。囧。
Nov 3

A.L.I.C.E. - ALICE AI 不指定

felix021 @ 2008-11-3 20:35 [IT » 其他] 评论(0) , 引用(0) , 阅读(3880) | Via 本站原创
一个很赞的AI,在线聊天机器人,这个项目已经启动11年了。。
http://www.pandorabots.com/pandora/talk?botid=f5d922d97e345aa1
Nov 1

代码缩进工具 indent 不指定

felix021 @ 2008-11-1 01:20 [IT » 程序设计] 评论(0) , 引用(0) , 阅读(3558) | Via 本站原创
indent - changes the appearance of a C program by inserting or deleting whitespace.

indent是一个开源的C/C++代码规范化工具,提供非常多的选项,不过只用一个就很适合我了^^
具体的做法是
$ gedit ~/.indent.pro
输入内容为:
引用
-linux

OK,以后只要用
$ indent ooxx.cpp
就可以把 ooxx.cpp 格式化成linux风格,正好适合我^^
分页: 2/2 第一页 上页 1 2 最后页 [ 显示模式: 摘要 | 列表 ]