新手挂载ntfs

说明:本文是基于网上原文并结合本身的经历进行改写的,修改了一些错误,加入了本身的心得,说得更加详细了。

看到众多的LINUX爱好者在MOUNT NTFS文件系统时出现的问题,众多的回答不是太彻底,发现有些答案说的不清楚,或者有一点点错误。
对于一个新手来讲,省略一点也会让他不能进行下去。因此特意写了这篇短文,重述了个人经历,但愿对你们有所帮助。

当你安装完Linux系统,而且已经启动,恭喜你!若是你的硬盘上还安装了WinNT/2000系统,
你试图去访问另外一个NTFS分区时却遇到了麻烦。由于你所用的Linux系统没有已编译的支持NTFS
文件系统的模块。linux虽然支持几十种文件系统,但它并非在安装时每种都载入。因此这时
须要从新编译内核。

写此文时我用的系统是Red Hat Linux release 6.0 Kernel 2.6.32-71.el6.i686。
从一个新安装的系统开始,咱们一块儿去编译一个本身想要的支持NTFS文件系统内核。

说明一下,下面提到的version是指你的内核版本号(x.y.z.*,如2.6.38.2),不是字符串version,我第一次在网上看到的,觉得是个字符串,晕,走了好多弯路。

1、找到源程序。在/usr/src目录下,没有linux目录,证实你在安装时没有安装源程序包,
这时你须要手工安装这个包,在CDROM里kernel-version-source.rpm,或者在
ftp.kernel.org/pub/linux/kernel 站点下载。将它拷到/usr/src目录下解包:

 

我是从ftp.kernel.org/pub/linux/kernel下载的2.6.38.2linux

tar xzvf linux-version.tgz
or tar xjvf linux-version.tar.bz2

2、配置内核
在/usr/src/linux目录下,运行make menuconfig
通常的选项不用管它,都是默认的就行。到你须要的文件系统下,选NTFS打上M标记,而后退出
保存。为了验证你的选择正确。在命令行下:
vi .config 应该找到这样一行:CONFIG_NTFS_FS = m
这样你已正确配置了NTFS文件系统的支持。

3、检查相关性(若是是2.6以上的内核就不须要了)
在/usr/src/linux目录下,运行以下命令:make dep 几分钟后结束。
再运行以下命令:make clean .清除临时文件。

4、编译内核
依然在这个目录下,运行 make bzImage
时间稍微长一点。结束以后会有两个重要文件:
arch/i386/boot/bzImage
System.map
这两个文件很重要,后面会讲到,呵呵

五 编译安装模块(可动态加载)
依然在这个目录下,运行make modules
这会须要很长时间。由于系统正在编译全部的模块。从CPU到SCSI等,编译选择的模块,生成相应的模块

6、安装模块。
依然在这个目录下,运行make modules_install (将编译后的模块转移到系统标准位置)模块在系统中的标准目录位于/lib/modules/x.y.z,后面的x.y.z是版本号,为安全起见,在运行#make  modules_install以前最好对/lib/modules进行备份。模块一般是带有扩展名.o的文件,使用命令#lsmod能够对当前内核的模块进行列表。

7、
# make install
可能会出现 error not find *****,能够不用理会, 偶暂时也不知道为何,很差意思~~~

上面的命令"make install"将:

 (1)把压缩内核映象(arch/i386/boot/bzImage,上面提到的)拷贝到/boot目录下, 并建立相应的System.map符号连接; 你会发现/boot下多了两个文件(vmlinuz-version, System.map-version,version指你内核的版本号,不一样版本的内核版本号不同)

 (2)修改bootloader的配置文件;(以grub这个bootloader为例)

 (3)调用mkinitrd程序建立内核的initrd映象(initramfs-version.img,这个文件很重要,我在这个文件上走了很长的弯路,没有这个谁的,内核找不到/lib/modules/version/modules.dep,由于最开始内核里没有目录SADA的驱动,不认识挂载在/上的磁盘目录,只有经过initramfs这个虚拟的文件目录来找到模块). 对于GRUB而言, 将在/boot/grub/grub.conf配置文件增长以下相似的配置行:
      title Red Hat Linux (2.***)

      root(hd0, 1)

      kernel /boot/vmlinuz-2.*** ro root=LABEL=/

      initrd /boot/initrd-2.***.img
                       

通常是make bzImage;make modules;make module_install; make install


总共有哪些文件:/boot目录下三个文件: 内核文件vmlinuz-version,符号链接文件System.map-version,虚拟目录文件initramfs-version-img, /lib/modules/下:模块version

                       

运行新内核以前,请检查一下/boot/grub/grub.conf的内容,下面的配置可做参考

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE:  You have a /boot partition.  This means that

#          all kernel and initrd paths are relative to /boot/, eg.

#          root (hd0,0)

#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00

#          initrd /initrd-version.img

#boot=/dev/hda

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title Fedora Core (2.6.18.2)

        root (hd0,0)

        kernel /vmlinuz-2.6.18.2 ro root=/dev/VolGroup00/LogVol00 rhgb quiet

        initrd /initrd-2.6.18.2.img

title Fedora Core (2.6.18-1.2798.fc6)

        root (hd0,0)

        kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/VolGroup00/LogVol00 rhgb quiet

        initrd /initrd-2.6.18-1.2798.fc6.img

 其实这个grub.conf文件在/etc/下有个grub.conf连接文件,本身也能够到这里去修改这个GRUB的配置

如今重启机器,便可选择最新的内核进行测试。 这个方法是对整个内核及模块进行编译,有点麻烦,但对新手来讲,能够加深理解c++

挂载: mount -t ntfs /dev/sda1 /mnt/win01           umount /mnt/win01 上面说到的make install ,能够经过其它方法实现: 一、 cp arch/i386/boot/bzImage /boot/vmlinuz.version cp System.map /boot/System.map.version 二、# cd /boot      # mkinitrd /boot/initramfs-version.img version 这样,3个文件准备好了,呵呵 三、修改/boot/grub/grub.conf    vi /boot/grub/grub/conf    ##增长一个内核加载入口    title Red Hat Linux (version)    root (hd0,0)    kernel /vmlinuz-2.4.18 ro root=/dev/hda2    具体参数与机器有关,相信你确定知道的。 本文没有说到LILO这种bootloader。 其实,在编译的过程当中还有不少问题,如:每一个命令作了些什么,生成了哪些文件,慢慢来 交叉编译问题: 安装qt时出现/usr/lib/libstdc++.so.6: version `GLIBCXX_6.0.10' not found linux 执行strings /usr/lib/libstdc++.so.6 | grep GLIBC 返回结果没有GLIBCXX_6.0.10 缘由:libstdc++.so.6的版本太低,须要下载个新的从新创建软链接。 解决方法:下载libstdc++.so.6.0.10的版本 1.下载后请先验证strings /tmp/libstdc++.so.6|grep GLIBCXX是否有 GLIBCXX_3.4.9 GLIBCXX_3.4.10 2.以后删除 符号连接:rm /usr/lib/libstdc++.so.6 3.复制文件cp /tmp/libstdc++.so.6.0.10 /usr/lib/ 4.再创建符号连接ln -s /usr/lib/libstdc++.so.6.0.10 /usr/lib/libstdc++.so.6 5.好了. 实际上没有达到目的,当时安装的一个工具须要so.6.0.14, 反而把系统搞坏了,当我重启系统后,桌面显示不了了,终端也打不开了,晕。当时是以root
相关文章
相关标签/搜索