Ubuntu自動掛載 windows 分區及讀寫NTFS分區

來源:互聯網
上載者:User

(一)

執行下列命令, 編輯掛載指令碼 autowinfs.

sudo gedit /usr/sbin/autowinfs

複製粘貼以下引用的內容,
儲存檔案, 退出。

#!/bin/sh
#
#autowinfs auto mount windows disks
#
# Copyright (c) 2005 Jiahua Huang <jhuangjiahua@gmail.com>
#License: GPLv2

#
# /usr/bin/sutowinfs
# 用來自動掛載機器上的 Windows 分區 , 並寫入 /etc/fstab
# 五 2月 18 14:06:12 CST 2005

mkdir -p /windows/
rmdir /windows/* 1> /dev/null
grep -v '/windows/' /etc/fstab > /etc/fstab.swp


# 本指令碼用於 UTF-8 的 Locale 下
# 單獨的 fdisk -l 不能列出分區的情況很少了 , 所以把 /dev/[hs]d[a-z] 去掉
## fdisk -l /dev/[hs]d[a-z] | grep -E 'FAT|NTFS' | cut -d' ' -f1 | cut -d/ -f3 | while read WDISKS
# 尋找 NTFS 分區 , 新核心的 auto 好像有點問題 , 所以現在把 NTFS 和 VFST 分開來

fdisk -l /dev/[hs]d[a-z] | grep 'NTFS' | cut -d' ' -f1 | cut -d/ -f3 | while read WDISKS
do echo "/dev/$WDISKS /windows/$WDISKS ntfs auto,user,nls=utf8,umask=0 0 0" >> /etc/fstab.swp
mkdir "/windows/$WDISKS"
done

fdisk -l /dev/[hs]d[a-z] | grep 'FAT' | cut -d' ' -f1 | cut -d/ -f3 | while read WDISKS
do echo "/dev/$WDISKS /windows/$WDISKS vfat auto,user,utf8,umask=0 0 0" >> /etc/fstab.swp
mkdir "/windows/$WDISKS"
done

mv /etc/fstab.swp /etc/fstab
mount -a
exit 0

再運行命令:

sudo chmod a+x /usr/sbin/autowinfs
sudo /usr/sbin/autowinfs
就可以了,Windows分區將掛載在 /windows/ 下.


(二)

在我和實際使用中,字元集用utf8效果很好,沒有出現亂碼的問題,在終端掛載的代碼如下:
mount -t vfat /dev/hda2 /mnt/d -o codepage=936,iocharset=utf8

我的fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/hdc8       /               ext3    defaults,errors=remount-ro 0       1
/dev/hdc9       none            swap    sw              0       0
/dev/hdb        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/hdc1       /mnt/winc     vfat    defaults,codepage=936,iocharset=utf8  0  0
/dev/hdc5       /mnt/wind    ntfs    defaults,iocharset=utf8,umask=0222   0  0
/dev/hdc6       /mnt/wine    ntfs    defaults,iocharset=utf8,umask=0222   0  0
/dev/hdc7       /mnt/winf    vfat    defaults,codepage=936,iocharset=utf8  0   0


(以下轉自網路)
1、掛載點必須是一個目錄。

2、一個分區掛載在一個已存在的目錄上,這個目錄可以不為空白,但掛載後這個目錄下以前的內

容將不可用。
對於其他動作系統建立的檔案系統的掛載也是這樣。但是需要理解的是:光碟片、磁碟片、其他動作

系統使用的檔案系統的格式與linux使用的檔案系統格式是不一樣的。光碟片是ISO9660;磁碟片是

fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;windows2000和

windowsXP是fat16、fat32、NTFS。掛載前要瞭解linux是否支援所要掛載的檔案系統格式。


掛載時使用mount命令:
格式:mount [-參數] [裝置名稱] [掛載點]

其中常用的參數有
-t<檔案系統類型> 指定裝置的檔案系統類型,常見的有:
minix linux最早使用的檔案系統
ext2 linux目前常用的檔案系統
msdos MS-DOS的fat,就是fat16
vfat windows98常用的fat32
nfs 網路檔案系統
iso9660 CD-ROM光碟片標準檔案系統
ntfs windows NT 2000的檔案系統
hpfs OS/2檔案系統
auto 自動檢測檔案系統
-o<選項> 指定掛載檔案系統時的選項。有些也可用在/etc/fstab中。常用的有
codepage=XXX 字碼頁
iocharset=XXX 字元集
ro 以唯讀方式掛載
rw 以讀寫方式掛載
nouser 使一般使用者無法掛載
user 可以讓一般使用者掛載裝置

提醒一下,mount命令沒有建立掛載點的功能,因此你應該確保執行mount命令時,掛載點已經存

在。(不懂。說白了點就是你要把檔案系統掛載到哪,首先要先建上個目錄。這樣OK。)

例子:windows98裝在hda1分區,同時電腦上還有磁碟片和光碟片需要掛載。
# mk /mnt/winc
# mk /mnt/floppy
# mk /mnt/cdrom
# mount -t vfat /dev/hda1 /mnt/winc
# mount -t msdos /dev/fd0 /mnt/floppy
# mount -t iso9660 /dev/cdrom /mnt/cdrom
現在就可以進入/mnt/winc等目錄讀寫這些檔案系統了。

要保證最後兩行的命令不出錯,要確保軟碟機和光碟機裡有盤。(要是硬碟的磁碟片也可以經常隨時

更換的話,我想就不會犯這樣的錯誤了 :-> )
如果你的windows98目錄裡有中文檔案名稱,使用上面的命令掛載後,顯示的是一堆亂碼。這就要

用到 -o 參數裡的codepage iocharset選項。codepage指定檔案系統的字碼頁,簡體中文中文代

碼是936;iocharset指定字元集,簡體中文一般用cp936或gb2312。


當掛載的檔案系統linux不支援時,mount一定報錯,如windows2000的ntfs檔案系統。可以重新

編譯linux核心以獲得對該檔案系統的支援。關於重新編譯linux核心,就不在這裡說了。

四 、自動掛載
每次開機訪問windows分區都要運行mount命令顯然太煩瑣,為什麼訪問其他的linux分區不用使

用mount命令呢。
其實,每次開機時,linux自動將需要掛載的linux分區掛載上了。那麼我們是不是可以設定讓

linux在啟動的時候也掛載我們希望掛載的分區,如windows分區,以實現檔案系統的自動掛載呢


這是完全可以的。在/etc目錄下有個fstab檔案,它裡面列出了linux開機時自動掛載的檔案系統

的列表。我的/etc/fstab檔案如下:

/dev/hda2 / ext3 defaults 1 1
/dev/hda1 /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/hda3 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,codepage=936,iocharset=gb2312 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
/dev/hdb1 /mnt/winc vfat defaults,codepage=936,iocharset=cp936 0 0
/dev/hda5 /mnt/wind vfat defaults,codepage=936,iocharset=cp936 0 0


在/etc/fstab檔案裡,第一列是掛載的檔案系統的裝置名稱,第二列是掛載點,第三列是掛載的文

件系統類別型,第四列是掛載的選項,選項間用逗號分隔。第五六列不知道是什麼意思,還望高手

指點。

在最後兩行是我手工添加的windows下的C;D盤,加了codepage=936和iocharset=cp936參數以支

持中文檔案名稱。參數defaults實際上包含了一組預設參數:

rw 以可讀寫入模式掛載
suid 開啟使用者ID和群組ID設定位
dev 可解讀檔案系統上的字元或區塊裝置
exec 可執行二進位檔案
auto 自動掛載
nouser 使一般使用者無法掛載
async 以非同步方式執行檔案系統的輸入輸出操作

大家可以看到在這個列表裡,光碟機和軟碟機是不自動掛載的,參數設定為noauto。(如果你非要設

成自動掛載,你要確保每次開機時你的光碟機和軟碟機裡都要有盤,呵呵。)


(三) 讓ubuntu支援ntfs的讀寫
使用ntfs-3g( cn99的源可以直接安裝)可以在ntfs分區上無限制的建立、刪除檔案!
1、安裝
     sudo apt-get install ntfs-3g
2、配置:
    sudo gedit /etc/fstab
    找到其中的你需要開啟讀寫的ntfs分區那一行,原先的”ntfs”改為”ntfs-3g” ,如果要全部開啟,則替  換所有”ntfs”為”ntfs-3g”,儲存退出
   sudo gedit /etc/modules
   在檔案的末尾添加一行(如果有則不用增加:-)
    fuse

重啟即可或者如果想要立即測試:

    sudo modprobe fuse
    sudo umount -a
    sudo mount -a    更多資訊請參考:http://hj123.byethost13.com/?p=17
重要訊息(ntfs-3g支援中文目錄):
  編輯:fstab
  sudo  nano  /etc/fstab
  把NTFS分區的掛載寫成以下格式:
   /dev/ hda1     /windows/ hda1 ntfs-3g silent,umask=0,locale=zh_CN.utf8 0 0
注意紅色的要改為你自己相應的NTFS分區。。不要照抄。。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.