今天晚上一时兴起,决定加载一下我原来的 NTFS 分区,因为 CentOS 本来是不支持的,
需要编译 kerenl
废话少说。以后是全过程(包括问题的解决)
首先下载自己当前内核的原码.
uname -r 查看
接着 tar -jxvf ……
然后:make menuconfig
在文件系统里面找到 NTFS 文件系统支持选项 (不好意思,我自己把它说成中文了,因
为我只看得懂,不会写,汗,嘿嘿)
按 M 键选中,M 是编译成 modules (模块)的意思
接着 esc 保存,退出
make modules 原代码主目录/fs/ntfs
注意:就在这个地方开始出错,出现以下信息:
fs/ntfs/aops.c: In function 'ntfs_readpage':
fs/ntfs/aops.c:418: error: implicit declaration of function 'zero_user_page'
fs/ntfs/aops.c:418: error: 'KM_USER0' undeclared (first use in this function)
fs/ntfs/aops.c:418: error: (Each undeclared identifier is reported only once
fs/ntfs/aops.c:418: error: for each function it appears in.)
make[2]: *** [fs/ntfs/aops.o] Error 1
make[1]: *** [fs/ntfs] Error 2
make: *** [fs] Error 2
我就开始奇怪了,aops.c ,难道内核的原代码有问题?
重试 N 次还是无果,最后在 google 上面找到一篇英文文档,一看,原来是 CentOS 5.3
的内核此处果然有问题,找到一个老外的解决办法,他的文档是这样写的:
diff -uNrp a/fs/ntfs/aops.c b/fs/ntfs/aops.c
--- a/fs/ntfs/aops.c 2009-03-06 01:06:22.000000000 -0800
+++ b/fs/ntfs/aops.c 2009-03-06 01:56:56.000000000 -0800
@@ -415,7 +415,7 @@ retry_readpage:
/* Is the page fully outside i_size? (truncate in progress) */
if (unlikely(page->index >= (i_size + PAGE_CACHE_SIZE - 1) >>
PAGE_CACHE_SHIFT)) {
- zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0);
+ zero_user(page, 0, PAGE_CACHE_SIZE);
ntfs_debug("Read outside i_size - truncated?");
goto done;
评论0
最新资源