linux挂载与卸载(转)
一、Linux中的硬件設(shè)備號(hào)
???? 設(shè) 備????????? 設(shè) 備 號(hào)
??? IDE硬盤???????? /dev/hd[a-d]?? (并行硬盤)
??? SCSI硬盤??????? /dev/sd[a-p]?? (串行硬盤)
??? U盤???????????? /dev/sd[a-p]
??? 光驅(qū)??????????? /dev/cdrom
??? 軟驅(qū)??????????? /dev/fd[0-1]
??? 打印機(jī)????????? /dev/lp[0-2]
??? 鼠標(biāo)??????????? /dev/mouse
??? LCD???????????? /dev/fb0
??? 系統(tǒng)終端??????? /dev/tty0
?
?例如:
?<1>當(dāng)插入第一個(gè)U盤時(shí),它的設(shè)備號(hào)為sda1
??? 當(dāng)插入第二個(gè)U盤時(shí),它的設(shè)備號(hào)為sdb1(我們可以進(jìn)入/dev/目錄下看到此設(shè)備文件)
??? 通過命令: mount? /dev/sdb1?? /mnt/sdb1? 就將它掛載到了/mnt/sdb1目錄下,通過umount??? /mnt/sdb1 來解除它的掛載
??? 掛載或卸載后可通過? df? 命令來查看
?<2>當(dāng)插入第一個(gè)硬盤時(shí),它的設(shè)備號(hào)為hda1
??? 當(dāng)插入第二個(gè)硬盤時(shí),它的設(shè)備號(hào)為hdb1
???
二、設(shè)備的掛載
??? 例程:將U盤插入ARM開發(fā)板
??? 在Linux系統(tǒng)中,設(shè)備在上層都被映射為設(shè)備文件,比如IDE硬盤被映射為設(shè)備文件/dev/hda1,U盤被映射為設(shè)備文件/dev/sda1.如果用戶直接訪問這些設(shè)備文件,則得到的一堆二進(jìn)制代碼.所以,為了方便用戶的使用,Linux規(guī)定,必須將該設(shè)備文件掛載到某一目錄下(常用的是/mnt目錄),用戶對(duì)該目錄(比如/mnt目錄)的操作(讀/寫)就是對(duì)設(shè)備文件的操作,也就是對(duì)設(shè)備的操作.當(dāng)然,在實(shí)際應(yīng)用中,常在/mnt目錄下新建一子目錄,比如hdisk(IDE硬盤)、udisk(U盤),然后將設(shè)備文件掛載到該子目錄下.
??? 步驟1:將相應(yīng)的文件系統(tǒng)燒入ARM開發(fā)板,以支持USB設(shè)備等.
??? 步驟2:插入U(xiǎn)盤,此時(shí)在ARM開發(fā)板的終端(putty軟件或超級(jí)終端)上會(huì)顯示該U盤的相應(yīng)信息,最重要的是U盤的設(shè)備文件名.
????????? 當(dāng)插入第一個(gè)U盤時(shí),該U盤的設(shè)備文件名為/dev/sda1.
????????? 當(dāng)插入第二個(gè)U盤時(shí),該U盤的設(shè)備文件名為/dev/sdb1.
??? 步驟3:在putty軟件(或超級(jí)終端)下輸入命令:
????????? [root@localhost /]#cd /mnt
????????? [root@localhost mnt]#mkdir udisk
????????? 這樣,就在/mnt目錄下新建一子目錄udisk.
????????? 注意,在putty軟件(或超級(jí)終端)下輸入命令是對(duì)ARM開發(fā)板進(jìn)行操作,也就是操作ARM開發(fā)板內(nèi)的文件系統(tǒng).切記不要再Linux虛擬機(jī)下操作.因?yàn)楝F(xiàn)在是將U盤掛載到ARM開發(fā)板上,而不是Linux虛擬機(jī),所以,必須對(duì)ARM開發(fā)板進(jìn)行操作.
??? 步驟4:在putty軟件(或超級(jí)終端)下輸入命令:
????????? [root@localhost /]#mount -t -vfat /dev/sda1 /mnt/udisk
????????? 這樣,就成功的將U盤的設(shè)備文件/dev/sda1掛載到了ARM開發(fā)板的/mnt/udisk目錄下,且以fat格式進(jìn)行掛載.當(dāng)用戶需要訪問U盤時(shí),可以通過對(duì)文件/mnt/udisk而實(shí)現(xiàn).
??? 注意,U盤多采用fat格式的文件系統(tǒng).
??? 步驟5:在putty軟件(或超級(jí)終端)下輸入命令:
????????? [root@localhost udisk]#cd ..
????????? 這樣就退出了udisk目錄.
????????? [root@localhost udisk]#umount /mnt/udisk
??? 這樣就成功的卸載了U盤(卸載U盤前,需要先退出/mnt/udisk目錄).
???
三、文件的掛載
??? 例程:將Linux虛擬機(jī)的/home/lishuai目錄掛載到ARM系統(tǒng)的/mnt/arm_linux文件下
??? 步驟1:將相應(yīng)的文件系統(tǒng)燒入ARM開發(fā)板.
??? 步驟2:在Linux虛擬機(jī)上建立NFS服務(wù)器,并將/home/lishuai目錄作為共享目錄,且設(shè)置的主機(jī)IP地址為192.168.0.*.
??? 步驟3:<1>在Linux虛擬機(jī)終端上通過ifconfig命令設(shè)置IP地址為:192.168.0.20,并通過ifconfig命令查詢IP地址.
????????? <2>在Windows的網(wǎng)上鄰居設(shè)置IP地址為:192.168.0.40,并通過"運(yùn)行>cmd>ipconfig"命令查詢IP地址.
????????? <3>在putty軟件或超級(jí)終端上通過ifconfig命令設(shè)置ARM開發(fā)板IP地址為:192.168.0.60,子網(wǎng)掩碼為255.255.255.0(#ifconfig eth0 192.168.0.60 netmask 255.255.255.0)并通過ifconfig eth0命令查詢IP地址.
??? 這樣,Windows、Linux虛擬機(jī)、ARM開發(fā)板就在同一網(wǎng)段上了.
??? 步驟4:在putty軟件或超級(jí)終端上輸入命令:
????????? #ping 192.168.0.20????? //查看ARM開發(fā)板能否ping通Linux主機(jī)
????????? #ping 192.168.0.40????? //查看ARM開發(fā)板能否ping通Windows
??? 步驟5:在putty軟件或超級(jí)終端上輸入命令:
???????? [root@localhost /]#cd /mnt
???????? [root@localhost mnt]#mkdir arm_linux
???????? 這樣,就在ARM開發(fā)板的文件系統(tǒng)中/mnt下新建了一子目錄arm_linux.
??? 步驟6:在putty軟件或超級(jí)終端上輸入命令:
???????? #mount -o nolock,wsize=1024,rsize=1024 192.168.0.20:/home/lishuai /mnt/arm_linux
????????? 這樣就將IP地址為192.168.0.20(Linux虛擬機(jī))下的/home/lishuai掛載到(ARM系統(tǒng))的/mnt/arm_linux目錄下.
??? 注釋:
??????? <1>若在putty軟件或超級(jí)終端上輸入上面的掛載命令,表示用戶對(duì)ARM系統(tǒng)進(jìn)行操作.由于ARM內(nèi)已燒入了文件系統(tǒng),故/mnt/arm_linux是ARM內(nèi)文件系統(tǒng)的一個(gè)目錄.因此,當(dāng)用戶執(zhí)行該命令時(shí),表示是將IP地址為192.168.0.20的/home/lishuai掛載到(ARM系統(tǒng))的/mnt/arm_linux目錄下.因此,當(dāng)用戶需要在ARM系統(tǒng)下對(duì)Linux虛擬機(jī)的/home/lishuai目錄進(jìn)行操作時(shí),直接對(duì)/mnt/arm_linux目錄操作便可以了.
????????? 此時(shí),在putty軟件或超級(jí)終端上輸入命令:#cd /home,但卻找不到lishuai這個(gè)目錄,這是因?yàn)樵谠趐utty軟件或超級(jí)終端上執(zhí)行cd命令時(shí),是對(duì)ARM系統(tǒng)的訪問.而不是對(duì)Linux主機(jī)進(jìn)行訪問,雖然ARM系統(tǒng)已燒入了文件系統(tǒng),但/home目錄下未必有l(wèi)ishuai這個(gè)目錄.
??????? <2>若在Linux虛擬機(jī)的終端上輸入上面的掛載命令,表示用戶對(duì)Linux主機(jī)進(jìn)行操作.當(dāng)然在Linux主機(jī)內(nèi)已有相應(yīng)的文件系統(tǒng).故/mnt/arm_linux是Linux主機(jī)的一個(gè)目錄.因此,當(dāng)用戶執(zhí)行該命令時(shí),表示將IP地址為192.168.0.20的/home/lishuai掛載到Linux主機(jī)的/mnt/arm_linux目錄下.因此,當(dāng)用戶需要在Linux主機(jī)下對(duì)IP地址為192.168.0.20的設(shè)備的/home/lishuai目錄進(jìn)行操作時(shí),直接對(duì)/mnt/arm_linux目錄操作便可以了.
??? 從上面的描述可以看出,執(zhí)行的對(duì)象不同,實(shí)現(xiàn)的掛載目的也不同.
???
四、對(duì)設(shè)備掛載、文件掛載的綜合實(shí)現(xiàn)
??? 例程:將Windows下的某個(gè)文件通過ARM開發(fā)板放入U(xiǎn)盤
??? 步驟1:通過Samba服務(wù)器將Windows下的文件hehe.txt放入(linux與Windows的)共享目錄/home/lishuai內(nèi).
??? 步驟2:通過NFS服務(wù)器將Linux主機(jī)的/home/lishuai目錄掛載到ARM開發(fā)板的/mnt/arm_linux目錄下.
????????? 在putty軟件或超級(jí)終端上輸入命令:
????????? #mount -o nolock,wsize=1024,rsize=1024 192.168.0.20:/home/lishuai /mnt/arm_linux
??? 步驟3:將U盤掛載到ARM開發(fā)板的/mnt/udisk目錄下.
????????? 在putty軟件或超級(jí)終端上輸入命令:
????????? #mount -t -vfat /dev/sda1 /mnt/udisk
??? 步驟4:在putty軟件或超級(jí)終端上輸入命令:
????????? #cd /mnt/udisk
????????? #cp ../arm_linux/hehe.txt ./
????這樣就實(shí)現(xiàn)了將Windows下的某個(gè)文件通過ARM開發(fā)板放入U(xiǎn)盤的目的.
?步驟5:卸載U盤和Linux虛擬機(jī)的/home/lishuai目錄.
?????? 在putty軟件或超級(jí)終端上輸入命令:
?????? [root@localhost udisk]#cd ..
?????? [root@localhost mnt]#umount /mnt/arm_linux
?????? [root@localhost mnt]#umount /mnt/udisk
?
五、設(shè)備號(hào)的另類應(yīng)用
?1.配置linux主機(jī)IP地址:192.168.220.54
?2.配置ARM開發(fā)板IP地址:192.168.220.1
?3.配置Windows的IP地址:192.168.220.55
?4.在putty軟件或超級(jí)終端下:#ping 192.168.220.54
?5.將linux主機(jī)的/home/lishuai目錄掛載到ARM開發(fā)板的/mnt/arm_linux目錄下:
?? #mount -o nolock,wsize=1024,rsize=1024192.168.220.54:/home/lishuai /mnt/arm_linux
?6.在linux主機(jī)的/home/lishuai目錄下創(chuàng)建hehe.c源碼.
?? #vim hehe.c
?? #include <stdio.h>
?? int main(void)
?? {
????? printf("hello embeded!\n");
????? return 0;
???}
?7.在linux主機(jī)的/home/lishuai目錄下使用arm-linux-gcc編譯hehe.c(為了在ARM平臺(tái)上運(yùn)行,必須使用arm-linux-gcc編譯器).
?? #arm-linux-gcc hehe.c -o hehe.arm
?? 編譯成功后,在putty軟件或超級(jí)終端下的/mnt/arm_linux目錄下會(huì)新產(chǎn)生一個(gè)hehe.arm的可執(zhí)行文件.由此看出,linux主機(jī)的/home/lishuai與ARM開發(fā)板的/mnt/arm_linux目錄是同步更新的.
?8.在putty軟件或超級(jí)終端下:
?? #./hehe.arm > /dev/tty0????? //將hehe.arm執(zhí)行結(jié)果打印到LCD上
?? #clear????? > /dev/tty0????? //清屏
?? #ls???????? > /dev/tty0????? //將顯示出當(dāng)前路徑(/mnt/arm_linux)下的文件和目錄
?
Attention!!!
(1)通常向LCD上寫這些重定向,是寫到tty0,而不是fb0.
(2)使用NFS實(shí)現(xiàn)文件掛載時(shí),必須保證下面幾點(diǎn).
?? <1>linux主機(jī)的NFS服務(wù)器正常使用.
????? 若有問題,可通過指令重啟服務(wù)器:#service nfs restart
??????或查詢服務(wù)器狀態(tài):#service nfs status
?? <2>Windows、linux主機(jī)和ARM開發(fā)板的IP地址在同一網(wǎng)段內(nèi),且通過ARM開發(fā)板可以ping通另外兩個(gè)設(shè)備.因?yàn)槲募燧d是通過網(wǎng)絡(luò)實(shí)現(xiàn)的.
(3)在實(shí)際的嵌入式開發(fā)中,常常無法將Linux主機(jī)的某個(gè)目錄掛載到ARM開發(fā)板上,此時(shí)可以從以下三個(gè)方面著手:
?? <1>由于這種掛載依賴于NFS服務(wù)器,因此可以查詢NFS服務(wù)器的狀態(tài),或者重啟NFS服務(wù)器.
????? #service nfs restart
????? #service nfs status
?? <2>重新配置Linux虛擬機(jī)的IP地址.這種掛載基于ARM開發(fā)板、Linux主機(jī)和Windows網(wǎng)卡在同一網(wǎng)段上,有時(shí)相互之間ping通但卻無法掛載.
?? <3>在Linux主機(jī)內(nèi)輸入命令來查看Linux主機(jī)是否能掛載自己.
????? #ifconfig eth0 192.168.0.50
??????#mount -o nolock 192.168.0.50:/home/lishuai /mnt
????? //將Linux主機(jī)的/home/lishuai目錄掛載到本機(jī)的/mnt目錄下
原文地址:http://lizzy115.blog.163.com/blog/static/3649195820101053277145/
參考:http://lameck.blog.163.com/blog/static/38811374201011167412377/
總結(jié)
以上是生活随笔為你收集整理的linux挂载与卸载(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dos中定义变量与引用变量以及四则运算
- 下一篇: monkeyrunner Can't o