linux是一個優秀的開放源碼的操作系統,可以運行在大到巨型小到掌上型各類計算機系統上,隨著 linux系統的日漸成熟和穩定以及它開放源代碼特有的優越性,linux在全世界得到了越來越廣泛的應用。現在許多企業的計算機系統都是由UNIX系 統、Linux系統和Windows系統組成的混合系統,不同系統之間經常需要進行數據交換。下面我根據自己的實際工作經驗介紹一下如何在linux系統 下掛接(mount)光盤鏡像文件、移動硬盤、U盤以及Windows網絡共享和UNIX NFS網絡共享。
mount是Linux下的一個命令,它可以將分區掛接到Linux的一個文件夾下,從而將分區和該目錄聯系起來,因此我們只要訪問這個文件夾,就相當于訪問該分區了。
掛載概念簡述:
根文件系統之外的其他文件要想能夠被訪問,都必須通過“關聯”至根文件系統上的某個目錄來實現,此關聯操作即為“掛載”,此目錄即為“掛載點”,解除此關聯關系的過程稱之為“卸載”
1.掛載:根文件系統外通過關聯至根文件系統上的某個目錄來實現訪問
2.掛載點:mount_point,用于作為另一個文件系統的訪問入口;
(1) 事先存在;
(2) 應該使用未被或不會被其它進程使用到的目錄;
(3) 掛載點下原有的文件將會被隱藏;
掛接命令(mount)
首先,介紹一下掛接(mount)命令的使用方法,mount命令參數非常多,這里主要講一下今天我們要用到的。
命令格式:mount [-t vfstype] [-o options] device dir
1、-t vfstype 指定文件系統的類型,通常不必指定,mount 會自動選擇正確的類型。
光盤或光盤鏡像:iso9660
DOS fat16文件系統:msdos
Windows 9x fat32文件系統:vfat
Windows NT ntfs文件系統:ntfs
Mount Windows文件網絡共享:smbfs
UNIX(LINUX) 文件網絡共享:nfs
2、-o options 主要用來描述設備或檔案的掛接方式。
loop:用來把一個文件當成硬盤分區掛接上系統
ro:采用只讀方式掛接設備
rw:采用讀寫方式掛接設備
iocharset:指定訪問文件系統所用字符集
3、device 要掛接(mount)的設備。
4、dir設備在系統上的掛接點(mount point)。
掛接光盤鏡像文件
1、從光盤制作光盤鏡像文件。將光盤放入光驅,執行下面的命令。
#cp /dev/cdrom /home/sunky/mydisk.iso 或
#dd if=/dev/cdrom of=/home/sunky/mydisk.iso
注:執行上面的任何一條命令都可將當前光驅里的光盤制作成光盤鏡像文件/home/sunky/mydisk.iso
2、將文件和目錄制作成光盤鏡像文件,執行下面的命令。
#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir
注:這條命令將/home/sunky/mydir目錄下所有的目錄和文件制作成光盤鏡像文件/home/sunky/mydisk.iso,光盤卷標為:mydisk
3、光盤鏡像文件的掛接(mount)
#mkdir /mnt/vcdrom
注:建立一個目錄用來作掛接點(mount point)
#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
注:使用/mnt/vcdrom就可以訪問光盤鏡像文件mydisk.iso里的所有文件了。
掛接移動硬盤
對linux系統而言,USB接口的移動硬盤是當作SCSI設備對待的。插入移動硬盤之前,應先用fdisk –l或more /proc/partitions查看系統的硬盤和硬盤分區情況。
[root at pldyrouter /]# fdisk -l
接好移動硬盤后,再用fdisk –l或more。
/proc/partitions查看系統的硬盤和硬盤分區情況,應該可以發現多了一個SCSI硬盤/dev/sdc和它的兩個磁盤分區/dev
/sdc1、/dev/sdc2,其中/dev/sdc5是/dev/sdc2分區的邏輯分區,我們可以使用下面的命令掛接/dev/sdc1和
/dev/sdc5。
#mkdir -p /mnt/usbhd1
#mkdir -p /mnt/usbhd2
注:建立目錄用來作掛接點(mount point)
#mount -t ntfs /dev/sdc1 /mnt/usbhd1
#mount -t vfat /dev/sdc5 /mnt/usbhd2
注:對ntfs格式的磁盤分區應使用-t ntfs參數,對fat32格式的磁盤分區應使用-t vfat參數。若漢字文件名顯示為亂碼或不顯示,可以使用下面的命令格式。
#mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1
#mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2
linux系統下使用fdisk分區命令和mkfs文件系統創建命令可以將移動硬盤的分區制作成linux系統所特有的ext2、ext3格式。這樣,在linux下使用就更方便了。使用下面的命令直接掛接即可。
#mount /dev/sdc1 /mnt/usbhd1
掛接U盤
和USB接口的移動硬盤一樣對linux系統而言U盤也是當作SCSI設備對待的。使用方法和移動硬盤完全一樣。插入U盤之前,應先用fdisk –l 或more /proc/partitions查看系統的硬盤和硬盤分區情況。
[root at pldyrouter root]# fdisk -l
插入U盤后,再用fdisk –l 或 more /proc/partitions查看系統的硬盤和硬盤分區情況。
[root at pldyrouter root]# fdisk -l
系統多了一個SCSI硬盤/dev/sdd和一個磁盤分區/dev/sdd1,/dev/sdd1就是我們要掛接的U盤。
#mkdir -p /mnt/usb
注:建立一個目錄用來作掛接點(mount point)
#mount -t vfat /dev/sdd1 /mnt/usb
注:現在可以通過/mnt/usb來訪問U盤了, 若漢字文件名顯示為亂碼或不顯示,可以使用下面的命令。
#mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb
掛接Windows文件共享
Windows網絡共享的核心是SMB/CIFS,在linux下要掛接(mount)windows的磁盤共享,就必須安裝和使用samba
軟件包。現在流行的linux發行版絕大多數已經包含了samba軟件包,如果安裝linux系統時未安裝samba請首先安裝samba。當然也可以到www.samba.org網站下載新的版本是3.0.10版。
當windows系統共享設置好以后,就可以在linux客戶端掛接(mount)了,具體操作如下:
# mkdir –p /mnt/samba
注:建立一個目錄用來作掛接點(mount point)
# mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba
注:administrator 和 pldy123 是ip地址為10.140.133.23 windows計算機的一個用戶名和密碼,c$是這臺計算機的一個磁盤共享。
如此就可以在linux系統上通過/mnt/samba來訪問windows系統磁盤上的文件了。以上操作在redhat as server3、redflag server 4.1、suse server 9以及windows NT 4.0、windows 2000、windowsxp、windows 2003環境下測試通過。
掛接UNIX系統NFS文件共享
類似于windows的網絡共享,UNIX(Linux)系統也有自己的網絡共享,那就是NFS(網絡文件系統),下面我們就以SUN Solaris2.8和REDHAT as server 3 為例簡單介紹一下在linux下如何mount nfs網絡共享。
在linux客戶端掛接(mount)NFS磁盤共享之前,必須先配置好NFS服務端。
1、Solaris系統NFS服務端配置方法如下:
(1)修改 /etc/dfs/dfstab, 增加共享目錄
share -F nfs -o rw /export/home/sunky
(2)啟動nfs服務
# /etc/init.d/nfs.server start
(3)NFS服務啟動以后,也可以使用下面的命令增加新的共享
# share /export/home/sunky1
# share /export/home/sunky2
注:/export/home/sunky和/export/home/sunky1是準備共享的目錄
2、linux系統NFS服務端配置方法如下:
(1)修改 /etc/exports,增加共享目錄
/export/home/sunky 10.140.133.23(rw)
/export/home/sunky1 *(rw)
/export/home/sunky2 linux-client(rw)
注:/export/home/目錄下的sunky、sunky1、sunky2是準備共享的目錄,10.140.133.23、*、
linux-client是被允許掛接此共享linux客戶機的IP地址或主機名。如果要使用主機名linux-client必須在服務端主機
/etc/hosts文件里增加linux-client主機ip定義。格式如下:
10.140.133.23 linux-client
(2)啟動與停止NFS服務
/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默認啟動的)
/etc/rc.d/init.d/nfs start 啟動NFS服務
/etc/rc.d/init.d/nfs stop 停止NFS服務
注:若修改/etc/export文件增加新的共享,應先停止NFS服務,再啟動NFS服務方能使新增加的共享起作用。
使用命令exportfs -rv也可以達到同樣的效果。
3、linux客戶端掛接(mount)其他linux系統或UNIX系統的NFS共享
# mkdir –p /mnt/nfs
注:建立一個目錄用來作掛接點(mount point)
#mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs
注:這里我們假設10.140.133.9是NFS服務端的主機IP地址,當然這里也可以使用主機名,但必須在本機/etc/hosts文件里增加服務端ip定義。/export/home/sunky為服務端共享的目錄。
如此就可以在linux客戶端通過/mnt/nfs來訪問其它linux系統或UNIX系統以NFS方式共享出來的文件了。
以上操作在 redhat as server 3、redflag server4.1、suse server 9以及Solaris 7、Solaris 8、Solaris 9 for x86&sparc環境下測試通過。
補充:
linux加載光驅:
(1)使用光驅前,要先mount一下:
#mount /dev/cdrom /mnt/cdrom
然后您就可以進入/mnt/cdrom目錄下讀取光盤內容了。
(2)當您想退出光盤時,須使用umout命令,否則光驅就會一直處于死鎖狀態:
#umount /mnt/cdrom
命令演示:
1、指定文件系統將塊設備掛載至指定空文件夾內:演示內容:1)沒有指定文件系統,命令是否能正確執行;2)指定錯誤文件系統,命令是否能正確執行;3)掛載點有內容的文件夾,查看被掛載后其內容是否消失。
[root@localhost /]# fdisk -l
。。。
設備 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 5 Extended
/dev/sdb5 2101248 2306047 102400 83 Linux
/dev/sdb6 2308096 2512895 102400 83 Linux
/dev/sdb7 2514944 2719743 102400 83 Linux
/dev/sdb8 2721792 2926591 102400 83 Linux
。。。
[root@localhost /]# mount /dev/sdb8 /device
[root@localhost /]# df
文件系統 1K-塊 已用 可用 已用% 掛載點
/dev/mapper/CentOS-root 18307072 4724136 13582936 26% /
devtmpfs 485368 0 485368 0% /dev
tmpfs 500664 84 500580 1% /dev/shm
tmpfs 500664 7160 493504 2% /run
tmpfs 500664 0 500664 0% /sys/fs/cgroup
/dev/sda1 508588 142620 365968 29% /boot
tmpfs 100136 20 100116 1% /run/user/42
tmpfs 100136 0 100136 0% /run/user/0
/dev/sdb8 98988 5280 93708 6% /device
[root@localhost /]# blkid /dev/sdb8
/dev/sdb8: UUID=“a3c4bf06-3695-45e8-8a07-a063498f0578” TYPE=“xfs”
[root@localhost /]# umount /device
[root@localhost /]# mount -t ext2 /dev/sdb8 /device
mount: 文件系統類型錯誤、選項錯誤、/dev/sdb8 上有壞超級塊、
缺少代碼頁或助手程序,或其他錯誤
[root@localhost /]# cd /device/
[root@localhost device]# ll
總用量 0
[root@localhost device]# touch 11 22
[root@localhost device]# ll
總用量 0
-rw-r--r--。 1 root root 0 8月 23 10:14 11
-rw-r--r--。 1 root root 0 8月 23 10:14 22
[root@localhost device]# ll
總用量 0
[root@localhost device]# ll -a
總用量 4
drwxr-xr-x. 2 root root 6 8月 23 09:27 。
dr-xr-xr-x. 21 root root 4096 8月 23 09:29 。。
[root@localhost device]# cd 。。
[root@localhost /]# umount /device/
[root@localhost /]# cd /device/
[root@localhost device]# ll
總用量 0
-rw-r--r--。 1 root root 0 8月 23 10:14 11
-rw-r--r--。 1 root root 0 8月 23 10:14 22
通過上述演示,說明了如下事實:1)沒有指定文件系統,塊設備也可以正常掛載;2)指定與塊設備不一致的文件系統類型則命令報錯;3)掛載點有內容的文件夾,在掛載后內容消失,卸載后內容重現,也就是說掛載后會將原文件內容掩蓋,但并不對其進行其他操作。
2、演示內容:1)指定卷標并以只讀方式掛載;2)對目錄進行掛載操作,查看其與硬鏈接與軟鏈接有何不同。
[root@localhost device]# blkid /dev/sdb6
/dev/sdb6: LABEL=“sdb6” UUID=“8284450c-8cb9-45d7-a8b8-ed9ed9ef9e52” TYPE=“xfs”
[root@localhost device]# mount -L ‘sdb6’ -r /device/
[root@localhost device]# touch /device/33
touch: 無法創建“/device/33”: 只讀文件系統
[root@localhost device]# umount /device/
[root@localhost /]# mount -B /etc/ /device/
[root@localhost /]# ll -i /
總用量 64
11341 lrwxrwxrwx. 1 root root 7 7月 19 23:54 bin -》 usr/bin
128 dr-xr-xr-x. 4 root root 4096 8月 2 10:09 boot
3 drwxr-xr-x. 19 root root 3300 8月 23 09:10 dev
33554561 drwxr-xr-x. 129 root root 8192 8月 23 09:38 device
33554561 drwxr-xr-x. 129 root root 8192 8月 23 09:38 etc
158 drwxr-xr-x. 42 root root 4096 8月 22 09:00 home
通過上述演示,說明了如下事實:1)指定卷標掛載可行,以只讀方式掛載后,無法對掛載點中的內容進行修改、創建等操作;2)目錄的掛載實質上是硬鏈接,掛載后可以對里面的文件內容進行修改與刪除。
注:文件夾的掛載在df中并不顯示
評論