Linux系统下,将普通硬盘的ntfs分区转换为ext4分区,并开机自动挂载

基本状况:linux

                个人笔记本是双硬盘配置,一块是原装的750G的硬盘,另外一块是闪迪120G固态硬盘,我如今的操做系统是 固态硬盘上面的 Ubuntu系统,750G的硬盘就成了存储设备挂载在 Ubuntu 上面。750G的普通硬盘的几个盘(原来是Windows系统,全部这几个盘是原先的配置)是以 NTFS 方式自动挂载在 Ubuntu上。说是自动挂载,但其实若是鼠标不点击盘符,就不会挂载,点击了才会挂载。windows

问题来由:ide

                举个例子,我将 750G普通硬盘的 C 盘的 60G的文件,拷贝到  D 盘中,发现 速度稳定在 11M/s,这太慢了!要知道 windows 下硬盘之间的拷贝速度但是 几十上百兆每秒的。因而查资料说是由于 Linux对 ntfs 格式支持的问题,建议把盘改为 ext4格式。因而决定照作。由于没查到无损将NTFS 格式转化为 ext4的方法,全部我先备份资料,而后将 C 盘格式化为 ext4.工具

 

具体操做:ui

                 我是参考这个帖子 http://blog.csdn.net/nianhongmin/article/details/27818195 来操做的,这里就列出一些具体步骤,并加上其余的解释:this

1, 切换到 root用户,终端下执行 fdisk -l操作系统

这里能够看到 固态硬盘是在 /dev/sda中,并且分红了三个部分。750G普通硬盘是在 /dev/sdb 中,分红了 6部分,sdb1,sdb2,sdb5,sdb6,sdb7,sdb8,其中 sdb1 是我原来的 C盘,70G左右,这里显示 sdb1 的 type 是 Linux LVM ,这是由于我已经见他改成了 ext4格式了,以前它也是 HPFS/NTFS/exFAT格式。sdb 2  是629.6G, W95 Ext'd(LBA)表示他是扩展分区,他是原先Windows系统的逻辑扩展分区。能够看出, sdb1 的 C盘 + sdb2 的扩展分区就 700+ G了,也差很少是个人 750 G的普通硬盘的容量了。下面的 sdb5,sdb6,sdb7,sdb8 是个加起来就是 sdb2 的容量了。这也正好印证了 sdb2 的确是扩展分区。至于为何 sdb2 还能被检测到,我就不知道了,windows 分区表啥的,我不懂。(说的好像 Linux的分区表就懂同样。)    .net

另外,这里的 sdb6 和 sdb 7都是 200 G,怎么区分了?还真很差区分,因此最好不要搞成如出一辙的大小,就像如今这样,咱们就很差区分了。可是,咱们仍是有不少办法,好比,你能够想 umount sdb6,看看谁被卸载了,就能区分了。还有一个更好的办法,就是 df -h,可以列出对应关系。code

这里看到 sdb6 和 sdb 7 分别对应不一样的 mount 目录,固然,他们的大小好像不彻底同样。。。。。orm

2,    #如今,要把/dev/sdb1 ,即C盘的NTFS格式转换成ext4格式,归linux使用。方法: 
umount /dev/sdb1

            #用fdisk转换分区格式,改成8e 
fdisk /dev/sdb

            #下面就是要用t命来修改下分区的id 
Command (m for help): t 
Partition number (1,2,5-8, default 8): 1     #这个是分区号 ,咱们是修改 sdb1,就输入 1
Hex code (type L to list codes):8e               # 8e是Linux LVM 的id,能够敲一个“L”查看一下,这样分区的格式就转换完啦。 
Command (m for help): w                               # w 是保存

3,        格式化分区 并 挂载: 
mkfs.ext4 /dev/sdb1

建立/media/lk/Win7目录: 
mkdir /media/lk/Win7

挂载分区: 
mount /dev/sdb1 /media/lk/Win7

到这一步,咱们就已经完成了格式化了。可是重启以后又要从新挂载。因此下面是自动挂载。

 

4,        自动挂载是要修改  /etc/fstab 文件便可,下面是我修改以后的 fstab 文件

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=145a85c1-456c-42d2-bf34-59bf409b1487 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=f2ca1fa2-5f39-4c48-8c92-ea3595c6ab99 none            swap    sw              0       0

# 下面的 两行 是我添加的。
# Win7 was on /dev/sdb1
UUID=b5c08104-9ac5-4766-ba4a-9df2af51510f /media/lk/Win7            ext4    auto              0       2

#下面的方案也可行

#/dev/sdb1  /media/lk/Win7            ext4    auto              0       2   

咱们能够看到,须要 /dev/sdb1 的 UUID,这个哪里得到了?其实 /etc/fstab的 第三方已经说了,用 blkid 得到 设备的 uuid。这里若是不用 uuid,直接用 /dev/sdb1 也行,我这里跟 前面的记录保持一致。

关于 fstab 文件配置的讲解,能够参考  linux之fstab文件详解

(http://blog.csdn.net/richerg85/article/details/17917129),这里主要解释一下 auto 和 0 2 。

  • <options> - 挂载时使用的参数,注意有些mount 参数是特定文件系统才有的。auto   表示 在启动时或键入了 mount -a 命令时自动挂载。
  • <dump> dump 工具经过它决定什么时候做备份. dump 会检查其内容,并用数字来决定是否对这个文件系统进行备份。 容许的数字是 0 和 1 。0 表示忽略, 1 则进行备份。大部分的用户是没有安装 dump 的 ,对他们而言 <dump> 应设为 0。
  • <pass> fsck 读取 <pass> 的数值来决定须要检查的文件系统的检查顺序。容许的数字是0, 1, 和2。 根目录应当得到最高的优先权 1, 其它全部须要被检查的设备设置为 2. 0 表示设备不会被 fsck 所检查。这里我设置为 2.

总结:

                双硬盘中的 Windows系统盘,能够单独格式化某一个盘,而不须要把整个硬盘都格式化。

               最后的效果,ext4 格式的盘的拷贝速度,从 11M/s 变成了          19M/s  。。。好吧,我认可是个人 硬盘的转速过低。。。反正我本身欺骗本身有了 80%的提速。。。

相关文章
相关标签/搜索