Linux系統分區和掛載淺

分類�?span class="Apple-converted-space"> 

好久沒有寫BLOG�?之前出差�?個月,都沒怎麼看書,也沒有太多時間寫。回來後一個月人也有點放鬆。現在開始還是得繼續努力啊。不廢話了,下面就介紹下Linux系統的分區和掛載

 

 

一 Linux的安�?/p>

 Linux的安裝是比較簡單的,整個過程和安裝XP差不多。首先BIOS中設置從光驅啓動,(不知道怎麼設置?那你還是先裝虛擬機玩玩吧!)會要你選安裝模式,直接回車用圖形界面;然後Linux安裝程序會有一個檢查光盤的過程,這裏可以選擇跳過【Skip】;然後等待初始化工作,系統就可以進入到安裝界面了;進入安裝界面後就可以進行一些設置(區域,語言,時間,密碼,分區等),設置完成後選擇要安裝的組件,安裝完成就一切OK了�?/p>

 

 

�?Linux系統分區

這裏我說的是指在分區時採用手動分區,而不是自動分區。Linux分區和Windows有很大的區別,你無法在Linux中看到諸如Windows中的C�?D盤。這確實會讓我們這些用慣了WIN操作系統的人感到很不習慣。其實理解了Linux分區結構後就很清晰了�?/p>

 

1: 硬盤分區

首先我們來看硬盤分區,分區是和操作系統沒有任何關係的,因爲她是在安裝操作系統之前進行了。我們可以簡單的認識,分區就是把硬盤分割爲不同的區域。在談具體分區前,有個比較簡單的問題想問下大家:硬盤問什麼要分區�?....哈哈!怎麼樣,不是很好回答吧,首先是因爲操作系統在啓動時會通過MBR來獲得操作系統文件所在的分區,所以一個可引導分區是不能缺少的。這也是爲什麼新買的硬盤不能直接用的原因。而且進行多個分區是爲了提高管理效率,所有東西放在一個分區,OS管理其起來效率比較低,因爲每次要檢索的東西太多�?/p>

 

下面我們簡單看下硬盤的分區結構:

 

硬盤主引導扇�?= 硬盤主引導記錄(MBR�? 硬盤分區表(DPT),一共是512個字節,其中MBR�?46,分區表一�?4字節,然後是2個字節的結束標誌。引導扇區存儲在硬盤�?�?�?扇區,也就是Boot Sector。(如圖1�?/p>

 

操作系統在啓動時通過BIOS(BIOS實際是一個基礎輸入輸出系統,用於和硬件打交到)程序把Boot Sector讀入內存,然後執行其中MBR,這個時候BIOS就把啓動交給MBR控制;MBR作用是在4個分區表中搜索標誌爲活動的分區,找到後把活動分區的第一個扇區讀入內存,然後開始執行它,運行特定系統的啓動程序(LILO,GRUB,NT Loader);這個時候啓動的啓動就交給了操作系統的引導程序來控制了。然後操作系統進行一系列的初始化,最後把系統交給系統內核進行管理�?/p>

                                  �?1

 

 

2:分區類�?/p>

上面介紹了硬盤分區結構和系統啓動,下面就看下各個分區。硬盤分區一共有3種,主分區,擴展分區和邏輯分區(如�?�?/p>

                        �?2

 

主分區上可以安裝操作系統,因爲MBR中記錄的主分區信息,系統啓動時會到主分區來查找操作系統引導文件,所以操作系統的引導文件必須在主分區中,否則系統就無法啓動了。而最多隻支持4個主分區�?span style="color: rgb(0, 0, 255); ">由於硬盤僅僅爲分區表保留�?4個字節的存儲空間,而每個分區的參數佔據16個字節,故主引導扇區中總計可以存儲4個分區的數據。操作系統只允許存儲4個分區的數據。所以爲了建立更多的邏輯磁盤供操作系統使用,系統引入了擴展分區的概念)�?/p>

 

 擴展分區並不是一個真實存在的分區,它只是內存管理鏈表中的一個指針,指示出那一塊區域是擴展分區。上面也提到出現擴展分區的原因。所以一個擴展分區也是一個主分區。而通過在擴展分區中在劃分邏輯分區對系統分區進行擴展。實際上所有的邏輯分區都是在一個分區類,只是邏輯上分開,這也是叫邏輯分區的原因。但對用戶來說一切都是透明瞭,我們看起來系統中有很多分區�?/p>

 

 

3:Linux分區

其面介紹了硬盤分區結構和分區類型,這裏就要講講Linux系統中分區的表示了。首先回顧下WINDOWS下分區的情況。在WINDOWS系統裏,我們看到,每個分區都有一個名字,C,D,E,F....實際這是OS使用的一種映射。通過操作系統中看到的這些盤符和分區聯繫起來,然後我們就可以在這些盤符下讀寫文件,操作系統負責把文件寫入到硬盤分區。在WINDOWS中盤符名稱和分區是對應了�?/p>

 

我們在來看看LINUX下的情況,在Linux下使�?dev/hda,hdb..這樣來標識硬盤,具體硬盤上的分區就用/dev/hda1,hda2,來表�?最後的數字代表分區�?主分區是1-4,邏輯分區�?以後的數字。Linux中最大的區別就是我們在也看不到所謂的盤符了。Liunx採用樹形的文件管理系統,也就是在Linux系統中,可以說已經沒有分區的概念了。分區在Linux和其他設備一樣都只是一個文件。要使用一個分區必須把它加載到文件系統中。這可能難於理解,繼續往下看�?/p>

 

Linux中樹形的文件結構,最頂層�? 目錄。在安裝系統時,你必須選擇把一個主分區掛載�? 目錄下,因爲系統需要安裝在/掛載的主分區下。否則系統會提示你。這裏又一次提到了掛載。所以掛載就是把目錄和分區連接起來,和上面說的WINDOWS下的映射關係是一樣的。不同的是WINDOWS是把分區映射到一個盤符,而LINUX下是映射到一個目錄�?這是理解他們不同最重要的地方,而導致不同的是因爲文件系統結構不同�?/p>

 

 

4:Linux文件系統

上面說了Linux的文件系統是樹形的,安裝的系統必須是�? 目錄下,因爲/目錄下掛載了一個主分區�?目錄是樹形的根,其他所有目錄都是他的子節點�?/p>

 

                                                                                                            �?3

 

我們看上�? 可以更好的理�? Linux整個系統結構如上, 我們安裝系統的時候已經把分區1掛載�?/ 目錄下了. 而這個時候沒有掛載其他任何分�?所�? 目錄下的所有其他目錄都在這個分區下,也就是說,我在任何目錄下讀寫操作實際都是操作的這個1號分區�?/p>

 

如果我們想使用其他分區,就必須把這個分區掛載到一個目錄下,這個目錄可以是已經存在的目錄,比如/home,也可以是我們自己建立的目�?比如/oracle。當然有些目錄比�?lib, /dev, /etc, /usr這些都不能掛載其他分�?因爲他們都存放着系統需要的文件,一旦被掛載其他分區,那沒OS就無法找到所需的文件,系統就會崩潰。比如我們把分區2掛載�?usr/X11目錄下時,系統就無法通過X11目錄找到分區1上的文件,這個時候系統圖形界面就無法使用�? 雖然文件還在硬盤上。前面說過,目錄 --- 分區 是通過掛載吧他們聯繫起來。你更換了分區,也就破壞了聯繫,就無法在找到之前的文件了。我們在看分�?和分�?,我們把它掛載到/home/ftp �?/oracle目錄�?這個時候我們在操作�?個目錄是,就是操作對用的分區了.

 

而WINDOWS就沒這麼複雜,她不是採用樹形的結構,每個分區對應一個盤�?一旦建立映射關係就無法在修改。實際上,LINUX的每個掛載了分區的目錄就相當於WINDOWS系統中的盤符,比如上面的�?home/ftp �?/oracle目錄我們就可以把她看做一個盤符和一個分區關聯,只是因爲LINUX文件系統,使得她更加靈活,所以也更復雜和難以理解�?/p>

 

 

三  �?Linux中的設置

 

1:查看Linux分區信息

前面介紹完了Linux文件系統和分區的關係,大家應該對分區有很清楚的認識了。下面我們就關注下Linux系統中如何查看分區情況�?/p>

在Linux系統中我們使df -u 命令就可以看到系統目前分區情�?/p>

  1. Filesystem            容量      已用      可用        已用%    掛載�?/span>
  2. /dev/hda1              21G       6.7G        13G        35%          /
  3. none                     506M       0          506M       0%           /dev/shm
  4. /dev/hda2              11G       5.2G        5.0G       52%         /home
  5. /dev/hda5              16G       9.3G        5.1G       65%         /oracle
  6. /dev/hda6              19G       201M      18G        2%           /usr1

從中我們可以看到目前系統加載�?個分�?其中2個主分區(hda1,hda2)和兩個邏輯分區(hda5,hda6)。也可以看到他們的加載點。其中hda1分區是系統分區,上面安裝了操作系統。�?home,/orace,/usr1分別加載了其�?個分區�?/p>

 

而通過fdisk -l 命令可以看到目前系統中所有分區的信息,如下�?/p>

  1. Disk /dev/hda: 80.0 GB, 80026361856 bytes
  2. 255 heads, 63 sectors/track, 9729 cylinders
  3. Units = cylinders of 16065 * 512 = 8225280 bytes
  4.    Device Boot      Start         End      Blocks   Id  System
  5. /dev/hda1   *           1        2677    21502971   83  Linux
  6. /dev/hda2            2678        4079    11261565   83  Linux
  7. /dev/hda3            4080        9729    45383625    5  Extended
  8. /dev/hda5            4080        6080    16073001   83  Linux
  9. /dev/hda6            6081        8581    20089251   83  Linux
  10. /dev/hda7            8582        9729     9221278+  82  Linux swap

可以看到hda3是一個主分區,但實際上他是一個擴展分�?前面我們介紹了擴展分�?她實際會佔用一個主分區,因爲MBR只能記錄4個分區信�? 由一個比較特殊的是hda7,她是一個交換分�?在WINDOWS系統中就是虛擬內存文�? 所以用df命令是查看不到她�?

 

這裏順便說下爲什麼標識爲/dev/hda,前面簡單提到過,LINUX下所有設備都被認爲是文件,�?dev目錄存放所有系統設備文件的,而一個分區就是一個文�?名字就是分區的名�?

 

 

2:Linux分區掛載

 

常用的掛載和卸載分區及文件系統的命令是mount和umount ,比�?mount /orace  /dev/hda5,就是把5號分區掛載到/oracle目錄下。具體的命令格式就不介紹了,網上很多,也可以使用man來查看。我們這裏主要講講自動掛載。並經每次都要使用命令手動掛載確實很麻煩,我們可以通過編輯/etc/fstab文件來讓系統開機時自動加載(這裏介紹的是系統安裝好後,使用fdisk分區�?進行加載)

 

vi /etc/fstab 就可以看到一下信�?

  1. # This file is edited by fstab-sync - see 'man fstab-sync' for details
  2. LABEL=/                   /                       ext3      defaults        1 1
  3. none                           /dev/pts            devpts  gid=5,mode=620  0 0
  4. none                           /dev/shm           tmpfs   defaults        0 0
  5. LABEL=/home          /home               ext3    defaults        1 2
  6. none                          /proc                  proc    defaults        0 0
  7. none                          /sys                   sysfs   defaults        0 0
  8. LABEL=/oracle        /oracle                ext3    defaults        1 2
  9. LABEL=/usr1           /usr1                  ext3    defaults        1 2
  10. LABEL=SWAP-hda7         swap     swap    defaults        0 0
  11. /dev/hdc                /media/cdrom            auto    pamconsole,fscontext=system_u:object_r:removable_t,exec,no  auto,managed 0 0

這個文件第一列就是具體的分區,第2列是分區掛載的目錄,�?列是文件格式,第4列是掛載規則,第5列是備份�?爲從不備份,或顯示上次至今備份之天數;第7列是啓動時fsck檢查順序,0爲不檢查, �?”永遠爲1;

 

瞭解了各個字段我們就具體來看下,其中/ 目錄系統會自動寫到這個文件中,因爲不加載系統如何啓動??那幾個none掛載的我還不太清楚。我們具體看看我們實際分區的掛載。我們可以在linux中使用fdisk 來進行分區。比如我們用fdisk劃分了hda2,5,6,7�?個分區。但我們想使用他們的時候,我們必須手動添加�?/p>

 

我們可以通過一下命令來完成自動加載

 

  1. mkfs.ext3 /dev/hdax
  2. e2lable /dev/hda2  /home 
  3. LABEL=/home          /home               ext3    defaults        1 2     //修改Fstab

 

分區要使用首先要格式�?目前使用較多的是ext3文件格式, 他相對於ext2更安�?更快,但是比較浪費空間�?�?0G硬盤用ext3�?可用的只�?7G左右,XP�?NTFS和FAT32可是�?0G左右�?

 

格式話之後就可以給分區設置一個標籤名(一般和要掛載的目錄名字相同)�?/span>然後在fstab文件中添加一行�?/span>大家可能有疑問,第一列不是標識分區嗎,這裏爲什麼要用標籤,其實你也可以用 �?dev/hda5 ,這裏LABLE是一個分區的標籤,你可以把它當作分區的名字�?/span>

 

以上就是對一個新建分區自動加載的過程。開機後我們可以通過 vi /etc/mtab查看已經加載的分區和文件系統�?/span>

 

 

3:關於交換分�?/span>

目前計算機內存越來越大,LINUX和VISTA都使用了內存做緩存,cached和buffers的區別在於一個是讀一個是寫。目前系統最大的開銷都是I/O操作,通過buffers先把文件讀到內存,這樣就減少了I/O,而使用cached就是把要寫入的文件放到緩存中,操作系統一次寫入磁�?減少I/O。而交換分區是爲了解決內存不足,而目前交換分區使用的很少,所以不需要給她分配過大的空間。當然作爲小內存機器還是很有用�?/span>

 

我們可以單獨劃分一個分區作爲交換分區,比如我們使用前門的hda7作爲交換分區。因爲他是交換分區,所以文件系統不能是ext3格式,必須是交換分區格�?

 

  1. mkswap -v1 -L SWAP-hda7 /dev/hda7
  2. swapon -a
  3. LABEL=SWAP-hda7     swap       swap    defaults        0 0    //修改Fstab

 

用以上的mkswap命令就可以把一個分區格式化爲交換分區文件系�?其中-L 參數是設置分區的LABLE名。然後使用swapon -a來關在系統中所有交換分區。最後修改fstab,加入這一�? 開機就可以自動加載交換分區了�?/p>

 

 

4:加載其他文件系�?/p>

除了加載Linux系統分區以外,我們還可以加載光驅,軟驅,USB存儲設備,設置是WINDOWS文件系統。方法和上面完全一樣,這裏就不廢話了�?/p>

 

最後要注意的是修改fstab要注�?如果設置的不正確,可能導致系統無法啓動.所以編輯時要小�?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章