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%的提速。。。

相關文章
相關標籤/搜索