Linux系统分区和挂载浅谈
好久沒有寫B(tài)LOG了,之前出差了2個月,都沒怎么看書,也沒有太多時間寫。回來后一個月人也有點放松。現在開始還是得繼續(xù)努力啊。不廢話了,下面就介紹下Linux系統(tǒng)的分區(qū)和掛載
?
?
一 Linux的安裝
?Linux的安裝是比較簡單的,整個過程和安裝XP差不多。首先BIOS中設置從光驅啟動,(不知道怎么設置?那你還是先裝虛擬機玩玩吧!)會要 你選安裝模式,直接回車用圖形界面;然后Linux安裝程序會有一個檢查光盤的過程,這里可以選擇跳過【Skip】;然后等待初始化工作,系統(tǒng)就可以進入 到安裝界面了;進入安裝界面后就可以進行一些設置(區(qū)域,語言,時間,密碼,分區(qū)等),設置完成后選擇要安裝的組件,安裝完成就一切OK了。
?
?
二 Linux系統(tǒng)分區(qū)
這里我說的是指在分區(qū)時采用手動分區(qū),而不是自動分區(qū)。Linux分區(qū)和Windows有很大的區(qū)別,你無法在Linux中看到諸如Windows中的C盤,D盤。這確實會讓我們這些用慣了WIN操作系統(tǒng)的人感到很不習慣。其實理解了Linux分區(qū)結構后就很清晰了。
?
1: 硬盤分區(qū)
首先我們來看硬盤分區(qū),分區(qū)是和操作系統(tǒng)沒有任何關系的,因為她是在安裝操作系統(tǒng)之前進行了。我們可以簡單的認識,分區(qū)就是把硬盤分割為不同的區(qū) 域。在談具體分區(qū)前,有個比較簡單的問題想問下大家:硬盤問什么要分區(qū)?.....哈哈!怎么樣,不是很好回答吧,首先是因為操作系統(tǒng)在啟動時會通過 MBR來獲得操作系統(tǒng)文件所在的分區(qū),所以一個可引導分區(qū)是不能缺少的。這也是為什么新買的硬盤不能直接用的原因。而且進行多個分區(qū)是為了提高管理效率, 所有東西放在一個分區(qū),OS管理其起來效率比較低,因為每次要檢索的東西太多。
?
下面我們簡單看下硬盤的分區(qū)結構:
?
硬盤主引導扇區(qū) = 硬盤主引導記錄(MBR)+ 硬盤分區(qū)表(DPT),一共是512個字節(jié),其中MBR是446,分區(qū)表一共64字節(jié),然后是2個字節(jié)的結束標志。引導扇區(qū)存儲在硬盤的0頭0道1扇區(qū),也就是Boot Sector。(如圖1)
?
操作系統(tǒng)在啟動時通過BIOS(BIOS實際是一個基礎輸入輸出系統(tǒng),用于和硬件打交到)程序把Boot Sector讀入內存,然后執(zhí)行其中MBR,這個時候BIOS就把啟動交給MBR控制;MBR作用是在4個分區(qū)表中搜索標志為活動的分區(qū),找到后把活動分 區(qū)的第一個扇區(qū)讀入內存,然后開始執(zhí)行它,運行特定系統(tǒng)的啟動程序(LILO,GRUB,NT Loader);這個時候啟動的啟動就交給了操作系統(tǒng)的引導程序來控制了。然后操作系統(tǒng)進行一系列的初始化,最后把系統(tǒng)交給系統(tǒng)內核進行管理。
????????????????????????????????? 圖 1
?
?
2:分區(qū)類型
上面介紹了硬盤分區(qū)結構和系統(tǒng)啟動,下面就看下各個分區(qū)。硬盤分區(qū)一共有3種,主分區(qū),擴展分區(qū)和邏輯分區(qū)(如圖2)
??????????????????????? 圖 2
?
主分區(qū)上可以安裝操作系統(tǒng),因為MBR中記錄的主分區(qū)信息,系統(tǒng)啟動時會到主分區(qū)來查找操作系統(tǒng)引導文件,所以操作系統(tǒng)的引導文件必須在主分區(qū)中,否則系統(tǒng)就無法啟動了。而最多只支持4個主分區(qū)(由于硬盤僅僅為分區(qū)表保留了64個字節(jié)的存儲空間,而每個分區(qū)的參數占據16個字節(jié),故主引導扇區(qū)中總計可以存儲4個分區(qū)的數據。操作系統(tǒng)只允許存儲4個分區(qū)的數據。所以為了建立更多的邏輯磁盤供操作系統(tǒng)使用,系統(tǒng)引入了擴展分區(qū)的概念)。
?
?擴展分區(qū)并不是一個真實存在的分區(qū),它只是內存管理鏈表中的一個指針,指示出那一塊區(qū)域是擴展分區(qū)。上面也提到出現擴展分區(qū)的原因。所以一個擴展 分區(qū)也是一個主分區(qū)。而通過在擴展分區(qū)中在劃分邏輯分區(qū)對系統(tǒng)分區(qū)進行擴展。實際上所有的邏輯分區(qū)都是在一個分區(qū)類,只是邏輯上分開,這也是叫邏輯分區(qū)的 原因。但對用戶來說一切都是透明了,我們看起來系統(tǒng)中有很多分區(qū)。
?
?
3:Linux分區(qū)
其面介紹了硬盤分區(qū)結構和分區(qū)類型,這里就要講講Linux系統(tǒng)中分區(qū)的表示了。首先回顧下WINDOWS下分區(qū)的情況。在WINDOWS系統(tǒng)里, 我們看到,每個分區(qū)都有一個名字,C,D,E,F....實際這是OS使用的一種映射。通過操作系統(tǒng)中看到的這些盤符和分區(qū)聯(lián)系起來,然后我們就可以在這 些盤符下讀寫文件,操作系統(tǒng)負責把文件寫入到硬盤分區(qū)。在WINDOWS中盤符名稱和分區(qū)是對應了。
?
我們在來看看LINUX下的情況,在Linux下使用/dev/hda,hdb..這樣來標識硬盤,具體硬盤上的分區(qū)就用/dev /hda1,hda2,來表示.最后的數字代表分區(qū)號,主分區(qū)是1-4,邏輯分區(qū)是5以后的數字。Linux中最大的區(qū)別就是我們在也看不到所謂的盤符 了。Liunx采用樹形的文件管理系統(tǒng),也就是在Linux系統(tǒng)中,可以說已經沒有分區(qū)的概念了。分區(qū)在Linux和其他設備一樣都只是一個文件。要使用 一個分區(qū)必須把它加載到文件系統(tǒng)中。這可能難于理解,繼續(xù)往下看。
?
Linux中樹形的文件結構,最頂層是/ 目錄。在安裝系統(tǒng)時,你必須選擇把一個主分區(qū)掛載在/ 目錄下,因為系統(tǒng)需要安裝在/掛載的主分區(qū)下。否則系統(tǒng)會提示你。這里又一次提到了掛載。所以掛載就是把目錄和分區(qū)連接起來,和上面說的WINDOWS下 的映射關系是一樣的。不同的是WINDOWS是把分區(qū)映射到一個盤符,而LINUX下是映射到一個目錄。 這是理解他們不同最重要的地方,而導致不同的是因為文件系統(tǒng)結構不同。
?
?
4:Linux文件系統(tǒng)
上面說了Linux的文件系統(tǒng)是樹形的,安裝的系統(tǒng)必須是在/ 目錄下,因為/目錄下掛載了一個主分區(qū)。/目錄是樹形的根,其他所有目錄都是他的子節(jié)點。
?
??????????????????????????????????????????????????????????????????????????????????????????????????????????? 圖 3
?
我們看上圖3 可以更好的理解, Linux整個系統(tǒng)結構如上, 我們安裝系統(tǒng)的時候已經把分區(qū)1掛載到 / 目錄下了. 而這個時候沒有掛載其他任何分區(qū),所以/ 目錄下的所有其他目錄都在這個分區(qū)下,也就是說,我在任何目錄下讀寫操作實際都是操作的這個1號分區(qū)。
?
如果我們想使用其他分區(qū),就必須把這個分區(qū)掛載到一個目錄下,這個目錄可以是已經存在的目錄,比如/home,也可以是我們自己建立的目錄,比如 /oracle。當然有些目錄比如/lib, /dev, /etc, /usr這些都不能掛載其他分區(qū),因為他們都存放著系統(tǒng)需要的文件,一旦被掛載其他分區(qū),那沒OS就無法找到所需的文件,系統(tǒng)就會崩潰。比如我們把分區(qū)2 掛載到/usr/X11目錄下時,系統(tǒng)就無法通過X11目錄找到分區(qū)1上的文件,這個時候系統(tǒng)圖形界面就無法使用了. 雖然文件還在硬盤上。前面說過,目錄 --- 分區(qū) 是通過掛載吧他們聯(lián)系起來。你更換了分區(qū),也就破壞了聯(lián)系,就無法在找到之前的文件了。我們在看分區(qū)5和分區(qū)6,我們把它掛載到/home/ftp 和 /oracle目錄下,這個時候我們在操作這2個目錄是,就是操作對用的分區(qū)了.
?
而WINDOWS就沒這么復雜,她不是采用樹形的結構,每個分區(qū)對應一個盤符,一旦建立映射關系就無法在修改。實際上,LINUX的每個掛載了分區(qū) 的目錄就相當于WINDOWS系統(tǒng)中的盤符,比如上面的,/home/ftp 和 /oracle目錄我們就可以把她看做一個盤符和一個分區(qū)關聯(lián),只是因為LINUX文件系統(tǒng),使得她更加靈活,所以也更復雜和難以理解。
?
?
三??? Linux中的設置
?
1:查看Linux分區(qū)信息
前面介紹完了Linux文件系統(tǒng)和分區(qū)的關系,大家應該對分區(qū)有很清楚的認識了。下面我們就關注下Linux系統(tǒng)中如何查看分區(qū)情況。
在Linux系統(tǒng)中我們使df -u?命令就可以看到系統(tǒng)目前分區(qū)情況
Filesystem????????????容量????? 已用????? 可用??????? 已用%?? ?掛載點
/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個分區(qū),其中2個主分區(qū)(hda1,hda2)和兩個邏輯分區(qū)(hda5,hda6)。也可以看到他們的加載點。其中hda1分區(qū)是系統(tǒng)分區(qū),上面安裝了操作系統(tǒng)。而/home,/orace,/usr1分別加載了其他3個分區(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是一個主分區(qū),但實際上他是一個擴展分區(qū),前面我們介紹了擴展分區(qū),她實際會占用一個主分區(qū),因為MBR只能記錄4個分區(qū)信息. 由一個比較特殊的是hda7,她是一個交換分區(qū),在WINDOWS系統(tǒng)中就是虛擬內存文件. 所以用df命令是查看不到她的.
?
這里順便說下為什么標識為/dev/hda,前面簡單提到過,LINUX下所有設備都被認為是文件,而/dev目錄存放所有系統(tǒng)設備文件的,而一個分區(qū)就是一個文件,名字就是分區(qū)的名字.
?
?
2:Linux分區(qū)掛載
?
常用的掛載和卸載分區(qū)及文件系統(tǒng)的命令是mount和umount ,比如 mount /orace? /dev/hda5,就是把5號分區(qū)掛載到/oracle目錄下。具體的命令格式就不介紹了,網上很多,也可以使用man來查看。我們這里主要講講自動掛 載。并經每次都要使用命令手動掛載確實很麻煩,我們可以通過編輯/etc/fstab文件來讓系統(tǒng)開機時自動加載(這里介紹的是系統(tǒng)安裝好后,使用 fdisk分區(qū)后,進行加載)
?
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
這個文件第一列就是具體的分區(qū),第2列是分區(qū)掛載的目錄,第3列是文件格式,第4列是掛載規(guī)則,第5列是備份;0為從不備份,或顯示上次至今備份之天數;第7列是啟動時fsck檢查順序,0為不檢查, “/”永遠為1;
?
了解了各個字段我們就具體來看下,其中/ 目錄系統(tǒng)會自動寫到這個文件中,因為不加載系統(tǒng)如何啟動??那幾個none掛載的我還不太清楚。我們具體看看我們實際分區(qū)的掛載。我們可以在linux中 使用fdisk 來進行分區(qū)。比如我們用fdisk劃分了hda2,5,6,7這4個分區(qū)。但我們想使用他們的時候,我們必須手動添加。
?
我們可以通過一下命令來完成自動加載
?
mkfs.ext3 /dev/hdax
?
分區(qū)要使用首先要格式化,目前使用較多的是ext3文件格式, 他相對于ext2更安全,更快,但是比較浪費空間了,我80G硬盤用ext3后,可用的只有67G左右,XP下 NTFS和FAT32可是有70G左右的.
?
格式話之后就可以給分區(qū)設置一個標簽名(一般和要掛載的目錄名字相同),然后在fstab文件中添加一行。大家可能有疑問,第一列不是標識分區(qū)嗎,這里為什么要用標簽,其實你也可以用??/dev/hda5 ,這里LABLE是一個分區(qū)的標簽,你可以把它當作分區(qū)的名字。
?
以上就是對一個新建分區(qū)自動加載的過程。開機后我們可以通過 vi /etc/mtab查看已經加載的分區(qū)和文件系統(tǒng)。
?
?
3:關于交換分區(qū)
目前計算機內存越來越大,LINUX和VISTA都使用了 內存做緩存,cached和buffers的區(qū)別在于一個是讀一個是寫。目前系統(tǒng)最大的開銷都是I/O操作,通過buffers先把文件讀到內存,這樣就 減少了I/O,而使用cached就是把要寫入的文件放到緩存中,操作系統(tǒng)一次寫入磁盤,減少I/O。而交換分區(qū)是為了解決內存不足,而目前交換分區(qū)使用 的很少,所以不需要給她分配過大的空間。當然作為小內存機器還是很有用。
?
我們可以單獨劃分一個分區(qū)作為交換分區(qū),比如我們使用前門的hda7作為交換分區(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命令就可以把一個分區(qū)格式化為交換分區(qū)文件系統(tǒng),其中-L 參數是設置分區(qū)的LABLE名。然后使用swapon -a來關在系統(tǒng)中所有交換分區(qū)。最后修改fstab,加入這一句, 開機就可以自動加載交換分區(qū)了。
?
?
4:加載其他文件系統(tǒng)
除了加載Linux系統(tǒng)分區(qū)以外,我們還可以加載光驅,軟驅,USB存儲設備,設置是WINDOWS文件系統(tǒng)。方法和上面完全一樣,這里就不廢話了。
?
最后要注意的是修改fstab要注意,如果設置的不正確,可能導致系統(tǒng)無法啟動.所以編輯時要小心.
轉載于:https://blog.51cto.com/254240/1687204
《新程序員》:云原生和全面數字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Linux系统分区和挂载浅谈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [EMC++] Item 8. Pref
- 下一篇: 2015第34周日