mount概要
mount是Linux下的一個(gè)命令,它可以將分區(qū)掛接到Linux的一個(gè)文件夾下,從而將分區(qū)和該目錄聯(lián)系起來,因此我們只要訪問這個(gè)文件夾,就相當(dāng)于訪問該分區(qū)了。 目前mount已經(jīng)不僅僅局限于Linux了。在Windows系統(tǒng)下的應(yīng)用也越來越廣了,多用在虛擬光驅(qū)類軟件上,比如Clone CD,Daemon tool,WinMount等。
mount格式使用
以下格式均可以mount到虛擬盤中使用
1.光盤鏡像ISO/IMG/VCD/nrg/mdf及mds/FCD/LCD/bin等
支持軟件:Alcohol, Clone, Daemon, UtraISO, WinISO, Virtual disk, WinMount
支持軟件:WinMount
3.虛擬機(jī)硬盤鏡像VHD/VMDK/VDI
支持軟件:Virtual disk, VMware, Virtual box, WinMount
4.壓縮格式RAR/ZIP/MOU
支持軟件:WinMount
mount的作用
用戶在UNIX的機(jī)器上打開一個(gè)文件以前,包含該文件的文件系統(tǒng)必須先進(jìn)行掛載的動(dòng)作,此時(shí)用戶要對(duì)該文件系統(tǒng)下mount的指令以進(jìn)行掛載。通常是使用在USB或其他可移除存儲(chǔ)設(shè)備上,而根目錄則保持掛載的狀態(tài)。但Unix文件系統(tǒng)可以對(duì)應(yīng)一個(gè)文件而不一定要是硬件設(shè)備。
Unix命令行的mount指令是告訴操作系統(tǒng),對(duì)應(yīng)的文件系統(tǒng)已經(jīng)準(zhǔn)備好,可以使用了,而該文件系統(tǒng)會(huì)對(duì)應(yīng)到一個(gè)特定的點(diǎn)(稱為掛載點(diǎn))。掛載好的文件、目錄、設(shè)備以及特殊文件即可提供用戶使用。除了操作系統(tǒng)調(diào)用的mount指令外,mount_root()會(huì)優(yōu)先掛載(或稱根目錄) 。在這個(gè)情況下,操作系統(tǒng)會(huì)在調(diào)用setup前,先調(diào)用mount。
它的對(duì)應(yīng)指令,umount,則是告訴操作系統(tǒng),斷開與該文件系統(tǒng)的連接,使其脫離掛載點(diǎn)。
文件系統(tǒng)條目 http://zh.wikipedia.org/wiki/%E6%AA%94%E6%A1%88%E7%B3%BB%E7%B5%B1
計(jì)算機(jī)的文件系統(tǒng)是一種存儲(chǔ)和組織計(jì)算機(jī)數(shù)據(jù)的方法,它使得對(duì)其存取和查找變得容易,文件系統(tǒng)使用文件和樹形目錄的抽象邏輯概念代替了硬盤和光盤等物理設(shè)備使用數(shù)據(jù)塊的概念,用戶使用文件系統(tǒng)來保存數(shù)據(jù)不必關(guān)心數(shù)據(jù)實(shí)際保存在硬盤(或者光盤)的地址為多少的數(shù)據(jù)塊上,只需要記住這個(gè)文件的所屬目錄和文件名。在寫入新數(shù)據(jù)之前,用戶不必關(guān)心硬盤上的那個(gè)塊地址沒有被使用,硬盤上的存儲(chǔ)空間管理(分配和釋放)功能由文件系統(tǒng)自動(dòng)完成,用戶只需要記住數(shù)據(jù)被寫入到了哪個(gè)文件中。
文件系統(tǒng)通常使用硬盤和光盤這樣的存儲(chǔ)設(shè)備,并維護(hù)文件在設(shè)備中的物理位置。但是,實(shí)際上文件系統(tǒng)也可能僅僅是一種存取資料的界面而已,實(shí)際的數(shù)據(jù)是通過網(wǎng)絡(luò)協(xié)議(如NFS、SMB、9P等)提供的或者內(nèi)存上,甚至可能根本沒有對(duì)應(yīng)的文件(如proc文件系統(tǒng))。
嚴(yán)格地說, 文件系統(tǒng)是一套實(shí)現(xiàn)了數(shù)據(jù)的存儲(chǔ)、分級(jí)組織、存取和獲取等操作的抽象數(shù)據(jù)類型(Abstract data type)。
那么在此,mount的作用是,以特定選項(xiàng)(rw)重新掛載文件系統(tǒng)到掛載點(diǎn)/system。
目的只是有權(quán)限讀寫/system下的文件,為什么不chmod呢
# pwd
/
# chmod 777 system
Unable to chmod system: Read-only file system
因?yàn)楦夸浵碌膕ystem目錄是system文件系統(tǒng)中的一個(gè)目錄。
編譯openwrt支持USB自動(dòng)mount功能
make menuconfig
1)添加USB相關(guān)支持
Kernel modules —》 USB Support —》 《*》 kmod-usb-core. ##默認(rèn)已經(jīng)選了
Kernel modules —》 USB Support —》 《*》 kmod-usb-ohci. ##默認(rèn)已選 old usb1.0
Kernel modules —》 USB Support —》 《*》 kmod-usb-uhci. ## usb1.1
Kernel modules —》 USB Support —》 《*》 kmod-usb-storage.
Kernel modules —》 USB Support —》 《*》 kmod-usb-storage-extras.
Kernel modules —》 USB Support —》 《*》 kmod-usb2. ##默認(rèn)已經(jīng)選了 usb2.0
2)添加SCSI支持
Kernel modules —》 Block Devices —》 《*》kmod-scsi-core ##默認(rèn)已經(jīng)選了 usb3.0 ??
3)添加USB掛載
Base system —》 《*》block-mount
4)添加自動(dòng)掛載工具
Utilities —》 Filesystem —》 《*》 badblocks
5)添加文件系統(tǒng)支持
Kernel modules —》 Filesystems —》 《*》 kmod-fs-ext4 (移動(dòng)硬盤EXT4格式選擇)
Kernel modules —》 Filesystems —》 《*》 kmod-fs-vfat(FAT16 / FAT32 格式 選擇)
Kernel modules —》 Filesystems —》 《*》 kmod-fs-ntfs (NTFS 格式 選擇)
6)添加UTF8編碼,CP437編碼,ISO8859-1編碼
Kernel modules —》 Native Language Support —》 《*》 kmod-nls-cp437
Kernel modules —》 Native Language Support —》 《*》 kmod-nls-iso8859-1
Kernel modules —》 Native Language Support —》 《*》 kmod-nls-utf8
Utilities ---》 disc ---》 《*》 fdisk.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 manipulate disk partition table
Utilities ---》 《*》 usbutils.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 USB devices listing utilities
退出保存
7)支持nls-cp936
make kernel_menuconfig
File systems ---》 《M》 Native language support ---》
《M》 Codepage 437 (United States, Canada)
《M》 Simplified Chinese charset (CP936, GB2312)
保存退出
// build_dir/target-mips_r2_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.7.9/.config 》 target/linux/ar71xx/config-3.7
---------------------------------- end ----------------------------------------------------
make V=99
ls -lh linux-3.7.9/fs/nls/nls_cp936.ko ##上面選擇編譯的 cp936內(nèi)核模塊
web界面上升級(jí) bin/ar71xx/openwrt-ar71xx-generic-tl-wdr4310-v1-squashfs-sysupgrade.bin
然后登錄web界面到 系統(tǒng)--》掛載點(diǎn) 上配置并啟用, 注意“高級(jí)設(shè)置”里的“掛載選項(xiàng)”填 rw,sync,codepage=936,iocharset=cp936 掛載點(diǎn)填 /www/mnt,
文件系統(tǒng)選 vfat 。
實(shí)際是配置文件:
cat /etc/config/fstab
config global ‘a(chǎn)utomount’
option from_fstab ‘1’
option anon_mount ‘1’
config global ‘a(chǎn)utoswap’
option from_fstab ‘1’
option anon_swap ‘0’
config swap
option device ‘/dev/sda2’
option enabled ‘0’
config mount
option device ‘/dev/sda1’
option target ‘/www/mnt’
option enabled_fsck ‘1’
option enabled ‘1’
option fstype ‘vfat’
-------------------------------------------- end ---------------------------------------------------------
cat /etc/fstab ## 查看是否自動(dòng)生效了
mount ## 查看是否mount上
注意 插入U(xiǎn)盤 自
動(dòng)掛載時(shí)會(huì)創(chuàng)建 /www/mnt目錄的 (如果該掛載點(diǎn)不存在的話)
-- 掛載USB盤支持中文
scp nls_cp936.ko root@192.168.123.1:/lib/modules/3.7.9/ ##
insmod nls_cp936.ko
reboot 重啟路由
mount -t vfat -o codepage=936,iocharset=cp936 /dev/sda1 /www/mnt
vi /etc/modules.d/25-nls-cp437
ls /etc/modules-boot.d/ ##在系統(tǒng)啟動(dòng)后按序號(hào)的順序來 insmod 這些模塊
因?yàn)樯厦媸菦]有支持內(nèi)核模塊 nls-cp936, see “-- 將nls_cp936添加到 Kernel modules中”, 將它支持進(jìn)去。
-- 將nls_cp936添加到 Kernel modules中
在上文支持文件系統(tǒng)的本地語言中,我們在 make menuconfig 的Kernel modules —》 Native Language Support —》 并沒有找到 nls_cp936, 只有nls_cp437,
而在 make kernel_menuconfig 中的File systems ---》 《M》 Native language support ---》 是有936這個(gè)內(nèi)核模塊的, 所以我們怎樣把它添加到
Kernel modules 中呢, 參考 nls.mk 中的 nls-437,
在nls.mk中增加:
define KernelPackage/nls-cp936
SUBMENU:=Native Language Support
TITLE:=Simplified Chinese charset (CP936, GB2312)
KCONFIG:=CONFIG_NLS_CODEPAGE_936
FILES:=$(LINUX_DIR)/fs/nls/nls_cp936.ko
AUTOLOAD:=$(call AutoLoad,25,nls_cp936)
$(call AddDepends/nls)
endef
define KernelPackage/nls-cp936/description
Kernel module for NLS Codepage 936 (CP936, GB2312)
endef
$(eval $(call KernelPackage,nls-cp936))
----------------------------------------------- end -------------------------------------------------
退出保存。
cd ~/work/openwrt/trunk
make kernel_menuconfig
File systems ---》 《 》 Native language support ##不選這個(gè) (因?yàn)槲疑厦孢x了它)
make menuconfig
Kernel modules ---》 Native Language Support ---》 《*》 kmod-nls-cp936.。。。。。。。。。。。。。。。 Simplified Chinese charset (CP936, GB2312)
保存退出。
make V=99
ls bin/ar71xx/packages/*nls*
kmod-nls-cp936_3.7.9-1_ar71xx.ipk
然后web界面上升級(jí) bin/ar71xx/openwrt-ar71xx-generic-tl-wdr4310-v1-squashfs-sysupgrade.bin
評(píng)論
查看更多