Linux系统分区和挂载浅谈
好久沒有寫B(tài)LOG了,之前出差了2個(gè)月,都沒怎么看書,也沒有太多時(shí)間寫。回來后一個(gè)月人也有點(diǎn)放松。現(xiàn)在開始還是得繼續(xù)努力啊。不廢話了,下面就介紹下Linux系統(tǒng)的分區(qū)和掛載
?
?
一 Linux的安裝
?Linux的安裝是比較簡(jiǎn)單的,整個(gè)過程和安裝XP差不多。首先BIOS中設(shè)置從光驅(qū)啟動(dòng),(不知道怎么設(shè)置?那你還是先裝虛擬機(jī)玩玩吧!)會(huì)要 你選安裝模式,直接回車用圖形界面;然后Linux安裝程序會(huì)有一個(gè)檢查光盤的過程,這里可以選擇跳過【Skip】;然后等待初始化工作,系統(tǒng)就可以進(jìn)入 到安裝界面了;進(jìn)入安裝界面后就可以進(jìn)行一些設(shè)置(區(qū)域,語言,時(shí)間,密碼,分區(qū)等),設(shè)置完成后選擇要安裝的組件,安裝完成就一切OK了。
?
?
二 Linux系統(tǒng)分區(qū)
這里我說的是指在分區(qū)時(shí)采用手動(dòng)分區(qū),而不是自動(dòng)分區(qū)。Linux分區(qū)和Windows有很大的區(qū)別,你無法在Linux中看到諸如Windows中的C盤,D盤。這確實(shí)會(huì)讓我們這些用慣了WIN操作系統(tǒng)的人感到很不習(xí)慣。其實(shí)理解了Linux分區(qū)結(jié)構(gòu)后就很清晰了。
?
1: 硬盤分區(qū)
首先我們來看硬盤分區(qū),分區(qū)是和操作系統(tǒng)沒有任何關(guān)系的,因?yàn)樗窃诎惭b操作系統(tǒng)之前進(jìn)行了。我們可以簡(jiǎn)單的認(rèn)識(shí),分區(qū)就是把硬盤分割為不同的區(qū) 域。在談具體分區(qū)前,有個(gè)比較簡(jiǎn)單的問題想問下大家:硬盤問什么要分區(qū)?.....哈哈!怎么樣,不是很好回答吧,首先是因?yàn)椴僮飨到y(tǒng)在啟動(dòng)時(shí)會(huì)通過 MBR來獲得操作系統(tǒng)文件所在的分區(qū),所以一個(gè)可引導(dǎo)分區(qū)是不能缺少的。這也是為什么新買的硬盤不能直接用的原因。而且進(jìn)行多個(gè)分區(qū)是為了提高管理效率, 所有東西放在一個(gè)分區(qū),OS管理其起來效率比較低,因?yàn)槊看我獧z索的東西太多。
?
下面我們簡(jiǎn)單看下硬盤的分區(qū)結(jié)構(gòu):
?
硬盤主引導(dǎo)扇區(qū) = 硬盤主引導(dǎo)記錄(MBR)+ 硬盤分區(qū)表(DPT),一共是512個(gè)字節(jié),其中MBR是446,分區(qū)表一共64字節(jié),然后是2個(gè)字節(jié)的結(jié)束標(biāo)志。引導(dǎo)扇區(qū)存儲(chǔ)在硬盤的0頭0道1扇區(qū),也就是Boot Sector。(如圖1)
?
操作系統(tǒng)在啟動(dòng)時(shí)通過BIOS(BIOS實(shí)際是一個(gè)基礎(chǔ)輸入輸出系統(tǒng),用于和硬件打交到)程序把Boot Sector讀入內(nèi)存,然后執(zhí)行其中MBR,這個(gè)時(shí)候BIOS就把啟動(dòng)交給MBR控制;MBR作用是在4個(gè)分區(qū)表中搜索標(biāo)志為活動(dòng)的分區(qū),找到后把活動(dòng)分 區(qū)的第一個(gè)扇區(qū)讀入內(nèi)存,然后開始執(zhí)行它,運(yùn)行特定系統(tǒng)的啟動(dòng)程序(LILO,GRUB,NT Loader);這個(gè)時(shí)候啟動(dòng)的啟動(dòng)就交給了操作系統(tǒng)的引導(dǎo)程序來控制了。然后操作系統(tǒng)進(jìn)行一系列的初始化,最后把系統(tǒng)交給系統(tǒng)內(nèi)核進(jìn)行管理。
????????????????????????????????? 圖 1
?
?
2:分區(qū)類型
上面介紹了硬盤分區(qū)結(jié)構(gòu)和系統(tǒng)啟動(dòng),下面就看下各個(gè)分區(qū)。硬盤分區(qū)一共有3種,主分區(qū),擴(kuò)展分區(qū)和邏輯分區(qū)(如圖2)
??????????????????????? 圖 2
?
主分區(qū)上可以安裝操作系統(tǒng),因?yàn)镸BR中記錄的主分區(qū)信息,系統(tǒng)啟動(dòng)時(shí)會(huì)到主分區(qū)來查找操作系統(tǒng)引導(dǎo)文件,所以操作系統(tǒng)的引導(dǎo)文件必須在主分區(qū)中,否則系統(tǒng)就無法啟動(dòng)了。而最多只支持4個(gè)主分區(qū)(由于硬盤僅僅為分區(qū)表保留了64個(gè)字節(jié)的存儲(chǔ)空間,而每個(gè)分區(qū)的參數(shù)占據(jù)16個(gè)字節(jié),故主引導(dǎo)扇區(qū)中總計(jì)可以存儲(chǔ)4個(gè)分區(qū)的數(shù)據(jù)。操作系統(tǒng)只允許存儲(chǔ)4個(gè)分區(qū)的數(shù)據(jù)。所以為了建立更多的邏輯磁盤供操作系統(tǒng)使用,系統(tǒng)引入了擴(kuò)展分區(qū)的概念)。
?
?擴(kuò)展分區(qū)并不是一個(gè)真實(shí)存在的分區(qū),它只是內(nèi)存管理鏈表中的一個(gè)指針,指示出那一塊區(qū)域是擴(kuò)展分區(qū)。上面也提到出現(xiàn)擴(kuò)展分區(qū)的原因。所以一個(gè)擴(kuò)展 分區(qū)也是一個(gè)主分區(qū)。而通過在擴(kuò)展分區(qū)中在劃分邏輯分區(qū)對(duì)系統(tǒng)分區(qū)進(jìn)行擴(kuò)展。實(shí)際上所有的邏輯分區(qū)都是在一個(gè)分區(qū)類,只是邏輯上分開,這也是叫邏輯分區(qū)的 原因。但對(duì)用戶來說一切都是透明了,我們看起來系統(tǒng)中有很多分區(qū)。
?
?
3:Linux分區(qū)
其面介紹了硬盤分區(qū)結(jié)構(gòu)和分區(qū)類型,這里就要講講Linux系統(tǒng)中分區(qū)的表示了。首先回顧下WINDOWS下分區(qū)的情況。在WINDOWS系統(tǒng)里, 我們看到,每個(gè)分區(qū)都有一個(gè)名字,C,D,E,F....實(shí)際這是OS使用的一種映射。通過操作系統(tǒng)中看到的這些盤符和分區(qū)聯(lián)系起來,然后我們就可以在這 些盤符下讀寫文件,操作系統(tǒng)負(fù)責(zé)把文件寫入到硬盤分區(qū)。在WINDOWS中盤符名稱和分區(qū)是對(duì)應(yīng)了。
?
我們?cè)趤砜纯碙INUX下的情況,在Linux下使用/dev/hda,hdb..這樣來標(biāo)識(shí)硬盤,具體硬盤上的分區(qū)就用/dev /hda1,hda2,來表示.最后的數(shù)字代表分區(qū)號(hào),主分區(qū)是1-4,邏輯分區(qū)是5以后的數(shù)字。Linux中最大的區(qū)別就是我們?cè)谝部床坏剿^的盤符 了。Liunx采用樹形的文件管理系統(tǒng),也就是在Linux系統(tǒng)中,可以說已經(jīng)沒有分區(qū)的概念了。分區(qū)在Linux和其他設(shè)備一樣都只是一個(gè)文件。要使用 一個(gè)分區(qū)必須把它加載到文件系統(tǒng)中。這可能難于理解,繼續(xù)往下看。
?
Linux中樹形的文件結(jié)構(gòu),最頂層是/ 目錄。在安裝系統(tǒng)時(shí),你必須選擇把一個(gè)主分區(qū)掛載在/ 目錄下,因?yàn)橄到y(tǒng)需要安裝在/掛載的主分區(qū)下。否則系統(tǒng)會(huì)提示你。這里又一次提到了掛載。所以掛載就是把目錄和分區(qū)連接起來,和上面說的WINDOWS下 的映射關(guān)系是一樣的。不同的是WINDOWS是把分區(qū)映射到一個(gè)盤符,而LINUX下是映射到一個(gè)目錄。 這是理解他們不同最重要的地方,而導(dǎo)致不同的是因?yàn)槲募到y(tǒng)結(jié)構(gòu)不同。
?
?
4:Linux文件系統(tǒng)
上面說了Linux的文件系統(tǒng)是樹形的,安裝的系統(tǒng)必須是在/ 目錄下,因?yàn)?目錄下掛載了一個(gè)主分區(qū)。/目錄是樹形的根,其他所有目錄都是他的子節(jié)點(diǎn)。
?
??????????????????????????????????????????????????????????????????????????????????????????????????????????? 圖 3
?
我們看上圖3 可以更好的理解, Linux整個(gè)系統(tǒng)結(jié)構(gòu)如上, 我們安裝系統(tǒng)的時(shí)候已經(jīng)把分區(qū)1掛載到 / 目錄下了. 而這個(gè)時(shí)候沒有掛載其他任何分區(qū),所以/ 目錄下的所有其他目錄都在這個(gè)分區(qū)下,也就是說,我在任何目錄下讀寫操作實(shí)際都是操作的這個(gè)1號(hào)分區(qū)。
?
如果我們想使用其他分區(qū),就必須把這個(gè)分區(qū)掛載到一個(gè)目錄下,這個(gè)目錄可以是已經(jīng)存在的目錄,比如/home,也可以是我們自己建立的目錄,比如 /oracle。當(dāng)然有些目錄比如/lib, /dev, /etc, /usr這些都不能掛載其他分區(qū),因?yàn)樗麄兌即娣胖到y(tǒng)需要的文件,一旦被掛載其他分區(qū),那沒OS就無法找到所需的文件,系統(tǒng)就會(huì)崩潰。比如我們把分區(qū)2 掛載到/usr/X11目錄下時(shí),系統(tǒng)就無法通過X11目錄找到分區(qū)1上的文件,這個(gè)時(shí)候系統(tǒng)圖形界面就無法使用了. 雖然文件還在硬盤上。前面說過,目錄 --- 分區(qū) 是通過掛載吧他們聯(lián)系起來。你更換了分區(qū),也就破壞了聯(lián)系,就無法在找到之前的文件了。我們?cè)诳捶謪^(qū)5和分區(qū)6,我們把它掛載到/home/ftp 和 /oracle目錄下,這個(gè)時(shí)候我們?cè)诓僮鬟@2個(gè)目錄是,就是操作對(duì)用的分區(qū)了.
?
而WINDOWS就沒這么復(fù)雜,她不是采用樹形的結(jié)構(gòu),每個(gè)分區(qū)對(duì)應(yīng)一個(gè)盤符,一旦建立映射關(guān)系就無法在修改。實(shí)際上,LINUX的每個(gè)掛載了分區(qū) 的目錄就相當(dāng)于WINDOWS系統(tǒng)中的盤符,比如上面的,/home/ftp 和 /oracle目錄我們就可以把她看做一個(gè)盤符和一個(gè)分區(qū)關(guān)聯(lián),只是因?yàn)長(zhǎng)INUX文件系統(tǒng),使得她更加靈活,所以也更復(fù)雜和難以理解。
?
?
三??? Linux中的設(shè)置
?
1:查看Linux分區(qū)信息
前面介紹完了Linux文件系統(tǒng)和分區(qū)的關(guān)系,大家應(yīng)該對(duì)分區(qū)有很清楚的認(rèn)識(shí)了。下面我們就關(guān)注下Linux系統(tǒng)中如何查看分區(qū)情況。
在Linux系統(tǒng)中我們使df -u?命令就可以看到系統(tǒng)目前分區(qū)情況
Filesystem????????????容量????? 已用????? 可用??????? 已用%?? ?掛載點(diǎn)
/dev/hda1??????????????21G?????? 6.7G??????? 13G??????? 35%??????????/
none???????????????????? 506M?????? 0????????? 506M?????? 0%????????? ?/dev/shm
/dev/hda2??????????????11G?????? 5.2G??????? 5.0G?????? 52%???????? /home
/dev/hda5??????????????16G?????? 9.3G??????? 5.1G?????? 65%???????? /oracle
/dev/hda6??????????????19G?????? 201M????? 18G??????? 2%?????????? /usr1
從中我們可以看到目前系統(tǒng)加載了4個(gè)分區(qū),其中2個(gè)主分區(qū)(hda1,hda2)和兩個(gè)邏輯分區(qū)(hda5,hda6)。也可以看到他們的加載點(diǎn)。其中hda1分區(qū)是系統(tǒng)分區(qū),上面安裝了操作系統(tǒng)。而/home,/orace,/usr1分別加載了其他3個(gè)分區(qū)。
?
而通過fdisk -l?命令可以看到目前系統(tǒng)中所有分區(qū)的信息,如下表
Disk?/dev/hda:?80.0?GB,?80026361856?bytes
255?heads,?63?sectors/track,?9729?cylinders
Units?=?cylinders?of?16065?*?512?=?8225280?bytes
???Device?Boot??????Start?????????End??????Blocks???Id??System
/dev/hda1???*???????????1????????2677????21502971???83??Linux
/dev/hda2????????????2678????????4079????11261565???83??Linux
/dev/hda3????????????4080????????9729????45383625????5??Extended
/dev/hda5????????????4080????????6080????16073001???83??Linux
/dev/hda6????????????6081????????8581????20089251???83??Linux
/dev/hda7????????????8582????????9729?????9221278+??82??Linux?swap
可以看到hda3是一個(gè)主分區(qū),但實(shí)際上他是一個(gè)擴(kuò)展分區(qū),前面我們介紹了擴(kuò)展分區(qū),她實(shí)際會(huì)占用一個(gè)主分區(qū),因?yàn)镸BR只能記錄4個(gè)分區(qū)信息. 由一個(gè)比較特殊的是hda7,她是一個(gè)交換分區(qū),在WINDOWS系統(tǒng)中就是虛擬內(nèi)存文件. 所以用df命令是查看不到她的.
?
這里順便說下為什么標(biāo)識(shí)為/dev/hda,前面簡(jiǎn)單提到過,LINUX下所有設(shè)備都被認(rèn)為是文件,而/dev目錄存放所有系統(tǒng)設(shè)備文件的,而一個(gè)分區(qū)就是一個(gè)文件,名字就是分區(qū)的名字.
?
?
2:Linux分區(qū)掛載
?
常用的掛載和卸載分區(qū)及文件系統(tǒng)的命令是mount和umount ,比如 mount /orace? /dev/hda5,就是把5號(hào)分區(qū)掛載到/oracle目錄下。具體的命令格式就不介紹了,網(wǎng)上很多,也可以使用man來查看。我們這里主要講講自動(dòng)掛 載。并經(jīng)每次都要使用命令手動(dòng)掛載確實(shí)很麻煩,我們可以通過編輯/etc/fstab文件來讓系統(tǒng)開機(jī)時(shí)自動(dòng)加載(這里介紹的是系統(tǒng)安裝好后,使用 fdisk分區(qū)后,進(jìn)行加載)
?
vi /etc/fstab 就可以看到一下信息:
#?This?file?is?edited?by?fstab-sync?-?see?'man?fstab-sync'?for?details
LABEL=/????????????????? ?/???????????????????????ext3????? defaults????????1?1
none????????????????????????? ?/dev/pts????????????devpts??gid=5,mode=620??0?0
none????????????????????????? ?/dev/shm???????????tmpfs???defaults????????0?0
LABEL=/home????????? /home???????????????ext3????defaults????????1?2
none????????????????????????? /proc??????????????????proc????defaults????????0?0
none??????????????????????? ??/sys???????????????????sysfs???defaults????????0?0
LABEL=/oracle????????/oracle????????????????ext3????defaults????????1?2
LABEL=/usr1???????????/usr1??????????????????ext3????defaults????????1?2
LABEL=SWAP-hda7?????????swap?????swap????defaults????????0?0
/dev/hdc????????????????/media/cdrom????????????auto????pamconsole,fscontext=system_u:object_r:removable_t,exec,no??auto,managed?0?0
這個(gè)文件第一列就是具體的分區(qū),第2列是分區(qū)掛載的目錄,第3列是文件格式,第4列是掛載規(guī)則,第5列是備份;0為從不備份,或顯示上次至今備份之天數(shù);第7列是啟動(dòng)時(shí)fsck檢查順序,0為不檢查, “/”永遠(yuǎn)為1;
?
了解了各個(gè)字段我們就具體來看下,其中/ 目錄系統(tǒng)會(huì)自動(dòng)寫到這個(gè)文件中,因?yàn)椴患虞d系統(tǒng)如何啟動(dòng)??那幾個(gè)none掛載的我還不太清楚。我們具體看看我們實(shí)際分區(qū)的掛載。我們可以在linux中 使用fdisk 來進(jìn)行分區(qū)。比如我們用fdisk劃分了hda2,5,6,7這4個(gè)分區(qū)。但我們想使用他們的時(shí)候,我們必須手動(dòng)添加。
?
我們可以通過一下命令來完成自動(dòng)加載
?
mkfs.ext3 /dev/hdax
?
分區(qū)要使用首先要格式化,目前使用較多的是ext3文件格式, 他相對(duì)于ext2更安全,更快,但是比較浪費(fèi)空間了,我80G硬盤用ext3后,可用的只有67G左右,XP下 NTFS和FAT32可是有70G左右的.
?
格式話之后就可以給分區(qū)設(shè)置一個(gè)標(biāo)簽名(一般和要掛載的目錄名字相同),然后在fstab文件中添加一行。大家可能有疑問,第一列不是標(biāo)識(shí)分區(qū)嗎,這里為什么要用標(biāo)簽,其實(shí)你也可以用??/dev/hda5 ,這里L(fēng)ABLE是一個(gè)分區(qū)的標(biāo)簽,你可以把它當(dāng)作分區(qū)的名字。
?
以上就是對(duì)一個(gè)新建分區(qū)自動(dòng)加載的過程。開機(jī)后我們可以通過 vi /etc/mtab查看已經(jīng)加載的分區(qū)和文件系統(tǒng)。
?
?
3:關(guān)于交換分區(qū)
目前計(jì)算機(jī)內(nèi)存越來越大,LINUX和VISTA都使用了 內(nèi)存做緩存,cached和buffers的區(qū)別在于一個(gè)是讀一個(gè)是寫。目前系統(tǒng)最大的開銷都是I/O操作,通過buffers先把文件讀到內(nèi)存,這樣就 減少了I/O,而使用cached就是把要寫入的文件放到緩存中,操作系統(tǒng)一次寫入磁盤,減少I/O。而交換分區(qū)是為了解決內(nèi)存不足,而目前交換分區(qū)使用 的很少,所以不需要給她分配過大的空間。當(dāng)然作為小內(nèi)存機(jī)器還是很有用。
?
我們可以單獨(dú)劃分一個(gè)分區(qū)作為交換分區(qū),比如我們使用前門的hda7作為交換分區(qū)。因?yàn)樗墙粨Q分區(qū),所以文件系統(tǒng)不能是ext3格式,必須是交換分區(qū)格式.
?
mkswap?-v1?-L?SWAP-hda7?/dev/hda7
swapon -a
LABEL=SWAP-hda7???? swap?????? swap??? defaults??????? 0 0??? //修改Fstab
?
用以上的mkswap命令就可以把一個(gè)分區(qū)格式化為交換分區(qū)文件系統(tǒng),其中-L 參數(shù)是設(shè)置分區(qū)的LABLE名。然后使用swapon -a來關(guān)在系統(tǒng)中所有交換分區(qū)。最后修改fstab,加入這一句, 開機(jī)就可以自動(dòng)加載交換分區(qū)了。
?
?
4:加載其他文件系統(tǒng)
除了加載Linux系統(tǒng)分區(qū)以外,我們還可以加載光驅(qū),軟驅(qū),USB存儲(chǔ)設(shè)備,設(shè)置是WINDOWS文件系統(tǒng)。方法和上面完全一樣,這里就不廢話了。
?
最后要注意的是修改fstab要注意,如果設(shè)置的不正確,可能導(dǎo)致系統(tǒng)無法啟動(dòng).所以編輯時(shí)要小心.
轉(zhuǎn)載于:https://blog.51cto.com/254240/1687204
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Linux系统分区和挂载浅谈的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [EMC++] Item 8. Pref
- 下一篇: 2015第34周日