1. 程式人生 > >linux磁碟分割槽詳解

linux磁碟分割槽詳解

        在學習 Linux 的過程中,安裝 Linux 是每一個初學者的第一個門檻。在這個過程中間,最大的困惑莫過於給硬碟進行分割槽。雖然,現在各種發行版本的 Linux 已經提供了友好的圖形互動介面,但是很多的人還是感覺無從下手。這其中的原因主要是不清楚 Linux 的分割槽規定,以及它下面最有效的分割槽工具― Fdisk 的使用方法。

        首先我們要對硬碟分割槽的基本概念進行一些初步的瞭解,硬碟的分割槽主要分為基本分割槽(primary partion)和擴充分割槽(extension partion)兩種,基本分割槽和擴充分割槽的數目之和不能大於四個。且基本分割槽可以馬上被使用但不能再分割槽。擴充分割槽必須再進行分割槽後才能使用,也就是說它必須還要進行二次分割槽。那麼由擴充分割槽再分下去的是什麼呢?它就是邏輯分割槽

(logical partion),況且邏輯分割槽沒有數量上限制。

        對習慣於使用dos或windows的使用者來說,有幾個分割槽就有幾個驅動器,並且每個分割槽都會獲得一個字母識別符號,然後就可以選用這個字母來指定在這個分割槽上的檔案和目錄,它們的檔案結構都是獨立的,非常好理解。但對這些初上手 red hat linux的使用者,可就有點惱人了。因為對red hat linux使用者來說無論有幾個分割槽,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的檔案結構。red hat linux中每個分割槽都是用來組成整個檔案系統的一部分,因為它採用了一種叫“載入”的處理方法,它的整個檔案系統中包含了一整套的檔案和目錄,且將一個分割槽和一個目錄聯絡起來。這時要載入的一個分割槽將使它的儲存空間在一個目錄下獲得。

        對windows使用者來說,作業系統必須裝在同一分割槽裡,它是商業軟體! 所以你沒有選擇的餘地!對red hat linux來說,你有了較大的選擇餘地,你可以把系統檔案分幾個區來裝(必須要說明載入點),也可以就裝在同一個分割槽中(載入點是“/”)。

       下面從這兩個方面入手,來講解這個困擾大家的問題。

Linux 的分割槽規定

 1. 裝置管理  

        在 Linux 中,每一個硬體裝置都對映到一個系統的檔案,對於硬碟、光碟機等 IDE 或 SCSI 裝置也不例外。Linux 把各種 IDE 裝置分配了一個由 hd 字首組成的檔案;而對於各種 SCSI 裝置,則分配了一個由 sd 字首組成的檔案。

        對於ide硬碟,驅動器識別符號為“hdx~”,其中“hd”表明分割槽所在裝置的型別,這裡是指ide硬碟了。“x”為盤號(a為基本盤,b為基本從屬盤,c為輔助主盤,d為輔助從屬盤),“~”代表分割槽,前四個分割槽用數字1到4表示,它們是主分割槽或擴充套件分割槽,從5開始就是邏輯分割槽。例,hda3表示為第一個ide硬碟上的第三個主分割槽或擴充套件分割槽,hdb2表示為第二個ide硬碟上的第二個主分割槽或擴充套件分割槽。對於scsi硬碟則標識為“sdx~”,scsi硬碟是用“sd”來表示分割槽所在裝置的型別的,其餘則和ide硬碟的表示方法一樣,不在多說。

        例如,第一個 IDE 裝置,Linux 就定義為 hda;第二個 IDE 裝置就定義為 hdb;下面以此類推。而 SCSI 裝置就應該是 sda、sdb、sdc 等。

2. 分割槽數量   

        要進行分割槽就必須針對每一個硬體裝置進行操作,這就有可能是一塊IDE硬碟或是一塊SCSI硬碟。對於每一個硬碟(IDE 或 SCSI)裝置,Linux 分配了一個 1 到 16 的序列號碼,這就代表了這塊硬碟上面的分割槽號碼。
        例如,第一個 IDE 硬碟的第一個分割槽,在 Linux 下面對映的就是 hda1,第二個分割槽就稱作是 hda2。對於SCSI 硬碟則是 sda1、sdb1 等。

3. 各分割槽的作用    

        在 Linux 中規定,每一個硬碟裝置最多能有 4個主分割槽(其中包含擴充套件分割槽)構成,任何一個擴充套件分割槽都要佔用一個主分割槽號碼,也就是在一個硬碟中,主分割槽和擴充套件分割槽一共最多是 4 個。
  對於早期的 DOS 和 Windows(Windows 2000 以前的版本),系統只承認一個主分割槽,可以通過在擴充套件分割槽上增加邏輯碟符(邏輯分割槽)的方法,進一步地細化分割槽。

主分割槽的作用就是計算機用來進行啟動作業系統的,因此每一個作業系統的啟動,或者稱作是載入程式,都應該存放在主分割槽上。這就是主分割槽和擴充套件分割槽及邏輯分割槽的最大區別。我們在指定安裝引導 Linux 的 bootloader 的時候,都要指定在主分割槽上,就是最好的例證。

  Linux 規定了主分割槽(或者擴充套件分割槽)佔用 1 至 16 號碼中的前 4 個號碼。以第一個 IDE 硬碟為例說明,主分割槽(或者擴充套件分割槽)佔用了 hda1、hda2、hda3、hda4,而邏輯分割槽佔用了 hda5 到 hda16 等 12 個號碼。
  因此,Linux 下面每一個硬碟總共最多有 16 個分割槽。
  對於邏輯分割槽,Linux 規定它們必須建立在擴充套件分割槽上(在 DOS 和 Windows 系統上也是如此規定),而不是主分割槽上。
  因此,我們可以看到擴充套件分割槽能夠提供更加靈活的分割槽模式,但不能用來作為 作業系統 的引導。 除去上面這些各種分割槽的差別,我們就可以簡單地把它們一視同仁了。
  4. 分割槽指標

        對於每一個 Linux 分割槽來講,分割槽的大小和分割槽的型別是最主要的指標。容量的大小讀者很容易理解,但是分割槽的型別就不是那麼容易接受了。分割槽的型別規定了這個分割槽上面的檔案系統的格式。
  Linux 支援多種的檔案系統格式,其中包含了我們熟悉的FAT32、FAT16、NTFS、HP-UX,以及各種 Linux特有的 Linux Native和 Linux Swap分割槽型別。
  在 Linux 系統中,可以通過分割槽型別號碼來區別這些不同型別的分割槽。各種型別號碼在介紹Fdisk的使用方式的時候將會介紹。
   5  常用分割槽

/boot分割槽,它包含了作業系統的核心和在啟動系統過程中所要用到的檔案,建這個 分割槽是有必要的,因為目前大多數的pc機要受到bios的限制,況且如果有了一個單獨的/boot啟動分割槽,即使主要的根分割槽出現了問題,計算機依然能夠 啟動。這個分割槽的大小約在50mb—100mb之間。但是如果想用lilo啟動red hat linux系統的話,含有/boot的分割槽必須完全在柱面1023以下。又由於8gb後的資料lilo不能讀取,所以red hat linux要安裝在8gb的區域以內。

/usr分割槽,是red hat linux系統存放軟體的地方,如有可能應將最大空間分給它。

/home分割槽,是使用者的home目錄所在地,這個分割槽的大小取決於有多少使用者。如 果是多使用者共同使用一臺電腦的話,這個分割槽是完全有必要的,況且根使用者也可以很好地控制普通使用者使用計算機,如對使用者或者使用者組實行硬碟限量使用,限制普 通使用者訪問哪些檔案等。其實單使用者也有建立這個分割槽的必要,因為沒這個分割槽的話,那麼你只能以根使用者的身份登陸系統,這樣做是危險的,因為根使用者對系統有 絕對的使用權,可一旦你對系統進行了誤操作,麻煩也就來了。

/var/log分割槽,是系統日誌記錄分割槽,如果設立了這一單獨的分割槽,這樣即使系統的日誌檔案出現了問題,它們也不會影響到作業系統的主分割槽。

/tmp分割槽,用來存放臨時檔案。這對於多使用者系統或者網路伺服器來說是有必要的。 這樣即使程式執行時生成大量的臨時檔案,或者使用者對系統進行了錯誤的操作,檔案系統的其它部分仍然是安全的。因為檔案系統的這一部分仍然還承受著讀寫操 作,所以它通常會比其它的部分更快地發生問題。

/bin分割槽,存放標準系統實用程式。

/dev分割槽,存放裝置檔案。

/opt分割槽,存放可選的安裝的軟體。

/sbin分割槽,存放標準系統管理檔案。

上面介紹了幾個常用的分割槽,一般來說我們需要一個swap分割槽,一個/boot分割槽,一個/usr分割槽,一個/home 分割槽,一個/var/log分割槽。當然這沒有什麼規定,完全是依照你個人來定的。但記住至少要有兩個分割槽,一個swap分割槽,一個/分割槽。


Fdisk 使用詳解

下面通過介紹 Fdisk 的使用方法,來鞏固上面所學到的各種關於 Linux 分割槽的知識。
  Fdisk 是各種 Linux 發行版本中最常用的分割槽工具,是被定義為 Expert 級別的分割槽工具,它讓初學者有點望而卻步。
  1. Fdisk 引數說明
   執行Fdisk的時候,首先映入眼簾的是歡迎介面,使用者通過在這個介面中輸入命令引數來操作Fdisk。使用者通過提示鍵入 “m”,可以顯示 Fdisk 命令各個引數的說明。 讀者可以看到 Fdisk 有很多引數,可是經常使用的就是幾個,如果讀者熟練掌握這幾個引數就可以流暢地運用 Fdisk,對 Linux 的硬碟進行分割槽。我們先簡單介紹各個引數的意義,然後詳細說明幾個重點引數。
  使用者在 Linux 中進行分割槽的時候,最常用的引數分別是 d、l、m、n、p、q、t、w 等。

2.用 Fdisk 進行分割槽

在 Linux 分割槽過程,一般是先通過 p 引數來顯示出硬碟分割槽表資訊,然後根據資訊確定將來的分割槽。如果想完全改變硬碟的分割槽格式,就可以通過 d 引數一個個刪除存在的硬碟分割槽。

例如 d1,d2。 刪除完畢,就可以通過 n 引數來增加新的分割槽。當按下 “n” 後,我們就可以看到新增的分割槽。這裡要選擇新建的分割槽型別,是主分割槽還是擴充套件分割槽;然後選擇 p 或是 e。它們的區別在上文中已經說明。然後就是設定分割槽的大小。需要提醒注意的是,如果硬碟上有擴充套件分割槽,就只能增加邏輯分割槽,不能增加擴充套件分割槽了,在增加分割槽的時候,其型別都是預設的 Linux Native,如果需要把其中的某些分割槽改變為其它型別,例如Linux Swap 或 FAT32 等,可以通過命令 t 來改變, 當按下 “t” 改變分割槽型別的時候,系統會提示要改變哪個分割槽,並且改變為什麼型別(如果想知道系統所支援的分割槽型別,鍵入 l)。Linux 所支援的分割槽型別號碼和其對應的分割槽型別,可以參考表 2(這些資訊可以用 l 命令得到)。改變完了分割槽型別,就可以按下 “w”,儲存並且退出。如果不想儲存,那麼可以選擇 “q” 直接退出。

fdisk 是一款強大的磁碟操作工具,來自util-linux軟體包,我們在這裡只說他如何檢視磁碟分割槽表及分割槽結構;引數 -l ,通過-l 引數,能獲得機器中所有磁碟的個數,也能列出所有磁碟分割槽情況;

[[email protected] beinan]# fdisk -l
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         765     6144831    7  HPFS/NTFS
/dev/hda2             766        2805    16386300    c  W95 FAT32 (LBA)
/dev/hda3            2806        7751    39728745    5  Extended
/dev/hda5            2806        3825     8193118+  83  Linux
/dev/hda6            3826        5100    10241406   83  Linux
/dev/hda7            5101        5198      787153+  82  Linux swap / Solaris
/dev/hda8            5199        6657    11719386   83  Linux
/dev/hda9            6658        7751     8787523+  83  Linux

在上面Blocks中,表示的是分割槽的大小,Blocks的單位是byte ,我們可以換算成M,比如第一個分割槽/dev/hda1的大小如果換算成M,應該是6144831/1024=6000M,也就是6G左右,其實沒有這麼 麻煩,粗略的看一下把小數點向前移動三位,就知道大約的體積有多大了;
    System 表示的檔案系統,比如/dev/hda1 是NTFS格式的;/dev/hda2 表示是fat32格式的檔案系統;.

在此例中,我們要特別注意的是/dev/hda3分割槽,這是擴充套件分割槽;他下面包含著邏輯分割槽,其實這個分割槽相當於一個容器;從屬於她的有 hda5,hda6,hda7,hda8,hda9 ;

我們還注意到一點,怎麼沒有hda4呢?為什麼hda4沒有包含在擴充套件分割槽?一個磁碟最多有四個主分割槽;hda1-4算都是主分割槽;hda4不可能包含在擴充套件分割槽裡,另外擴充套件分割槽也算主分割槽;在本例中,沒有hda4這個分割槽,當然我們可以把其中的一個分割槽設 置為主分割槽,只是我當時分割槽的時候沒有這麼做而已;

再仔細統計一下,我們看一看這個磁碟是不是還有空間?hda1+hda2+hda3=實際已經分割槽的體積,所以我們可以這樣算 hda1+hda2+hda3=6144831+16386300+39728745 = 62259876 (b),換算成M單位,小數點向前移三位,所以目前已經劃分好的分割槽大約佔用體積是62259.876(M),其實最精確的計算62259876/1024=60800.67(M);而這個磁碟大小是80.0 GB (80026361856byte),其實實際大小也就是78150.744(M);通過我們一系列的計算,我們可以得出這個硬碟目前還有使用的空間;大約還有18G未分割槽的空間;

我們也可以指定fdisk -l 來檢視其中一個硬碟的分割槽情況;

[[email protected] beinan]# fdisk -l /dev/sda

Disk /dev/sda: 60.0 GB, 60011642880 bytes
64 heads, 32 sectors/track, 57231 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       57231    58604528   83  Linux


通過上面情況可以知道,在/dev/sda 這個磁碟中,只有一個分割槽;使用量差不多是百分百了;

我們還可以來檢視 /dev/hda的

[[email protected] beinan]# fdisk -l /dev/hda

自己試試看?

我們也可以通過: cat /proc/partitions檢視目前機器中的所有磁碟及分割槽情況

df 命令;
df 是來自coreutils 軟體包,系統安裝時,就自帶的;我們通過這個命令可以檢視磁碟的使用情況以及檔案系統被掛載的位置;

舉例:

[[email protected] beinan]# df -lh

Filesystem            容量  已用 可用 已用% 掛載點

/dev/hda8              11G  6.0G  4.4G  58% /

/dev/shm              236M     0  236M   0% /dev/shm

/dev/sda1              56G   22G   35G  39% /mnt/sda1

我們從中可以看到,系統安裝在/dev/hda8 ;還有一個56G的磁碟分割槽/dev/sda1掛載在 /mnt/sda1中;

其它的引數請參考 man df

通過以上兩個方面的學習,相信對於初學者來說,分割槽已經不再是 Linux 進階中的絆腳石了

相關推薦

linux磁碟分割槽

        在學習 Linux 的過程中,安裝 Linux 是每一個初學者的第一個門檻。在這個過程中間,最大的困惑莫過於給硬碟進行分割槽。雖然,現在各種發行版本的 Linux 已經提供了友好的圖形互動介面,但是很多的人還是感覺無從下手。這其中的原因主要是不清楚 Linu

linux基礎3-磁碟和檔案系統相關 LINUX支援哪些檔案系統 linux磁碟分割槽 圖文(fdisk;mkfs)

一 dumpe2fs :    在Linux使用過程中,我們如果要了解檔案系統的配置情況,可以使用dumpe2fs檢視ext2/ext3/ext4格式的檔案系統資訊。 命令格式: dumpe2fs [選項] 裝置 常用選項: -h  僅列出超級塊中的資訊

Linux分割槽之 Parted

通常我們用的比較多的一般都是fdisk工具來進行分割槽,但是現在由於磁碟越來越廉價,而且磁碟空間越來越大;而fdisk工具他對分割槽是有大小限制的,它只能劃分小於2T的磁碟。但是現在的磁碟空間很多都已經是遠遠大於2T了,甚至達到2.5T和3T,那要怎麼辦能,有兩個方法,其一是通過卷管理來實現

Linux分割槽之--Fdisk

Linux下分割槽詳解之--Fdisk 作者:吳偉龍 1、            通過Fdisk檢視系統分割槽詳細資訊: Fdisk –l   詳解: [[email protected]

Linux啟動流程

linux 詳解 啟動流程 grub mbr 內核 linux啟動流程第一部分 Linux啟動基礎知識1.1 linux centos6.8啟動流程圖 BIOS加電自檢à加載MBRà加載啟動grubà加載內核à啟動/sbin/i

Linux netstat命令,高級面試必備

bytes tool head osi ngs 進行 pen 通信 詳細信息 簡介 Netstat 命令用於顯示各種網絡相關信息,如網絡連接,路由表,接口狀態 (Interface Statistics),masquerade 連接,多播成員 (Multicast Mem

linux top 命令

ctrl+ 一次 所有 使用方法 ase 隱藏 統計 ini 前臺 top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似於Windows的任務管理器。下面詳細介紹它的使用方法。top - 01:06:48 up 1:22, 1 user

【轉】linux awk命令

column 環境變量 最後一行 工作流程 初始 文本文件 for循環 其中 cti 簡介 awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切

Linux ls命令

-c 目錄 輸出 限制 普通 排序 當前 ls -l sna ls 命令可以說是Linux下最常用的命令之一。 -a 列出目錄下的所有文件,包括以 . 開頭的隱含文件。(後有詳解)-b 把文件名中不可輸出的字符用反斜杠加字符編號(就象在c語言裏一樣)的形式列出。-c 輸出

linux lsof命令

open 日誌 文件和目錄 delete 數據報 正在 某個文件 alt targe 簡介 lsof(list open files)是一個列出當前系統打開文件的工具。在linux環境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件

linux tail 命令

基本 linux中 file tail命令 方式 sed 缺省 顯示 有效 linux ---tail命令 linux中tail命令---用於查看文件內容 最基本的是cat、more和less。 1. 如果你只想看文件的前5行,可以使用head命令,如: head -5 /

linux 線程

大於 linux下 blog 根據 影響 stack 復制代碼 系統資源 代碼 線程 是計算機中獨立運行的最小單位,運行時占用很少的系統資源。可以把線程看成是操作系統分配CPU時間的基本單元。一個進程可以擁有一個至多個線程。它線程在進程內部共享地址空間、打開的文件描述符等資

linux screen 命令

文本 常用 小時 遠程終端 參考 編輯 load 調整 長時間 一、背景 系統管理員經常需要SSH 或者telent 遠程登錄到Linux 服務器,經常運行一些需要很長時間才能完成的任務,比如系統備份、ftp 傳輸等等。通常情況下我們都是為每一個這樣的任務開一個遠程終端窗口

linux服務ssh

ssh服務ssh服務: 管理服務器的方式: 本地管理 (安裝系統、故障修復) SSH遠程連接的方式 Linux: ssh命令 Windows: Xshell; Xmanager SecureCRT Putty 提供ssh服務/ssh客戶端工具的軟件:[[email 

linux系統啟動

oca 3.3 哪些 技術 針對 個性 桌面 inux 解壓縮 要學習linux的命令,我們需要先了解linux系統是如何工作的,這裏我們先了解linux是如何在一臺電腦上啟動加載的!! linux系統啟動過程 第一步、 BIOS初始化 1. BIOS檢測所有的外置

轉-Linux啟動過程(inittab、rc.sysinit、rcX.d、rc.local)

dha mage 模塊 都是 交換 如何配置 mas 完全 打開 http://blog.chinaunix.net/space.php?uid=10167808&do=blog&id=26042 1)BIOS自檢2)啟動Grub/Lilo3)加載內

[轉載]linux awk命令

基本 特定 收集 comm rip 解釋 文本 工作流程 復制代碼 簡介 awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行各

Linux 定時任務

什麽 file 同名 實現 link 打印 環境 grep 導入 fileclear.sh tamcdir=${HOME}/ora/user_projects/domains/tamc cd ${tamcdir} echo rm -f `ls heapdump*.phd

linux中top

linux查看進程之top詳解簡介top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似於Windows的任務管理器。top顯示系統當前的進程和其他狀況,是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態.如果在前臺執行該命令,它將獨占前臺,直到用戶終止該程序為止.

Linux crontab命令

條件 nta mman minute 使用 1-1 同時 刪除用戶 設置 1.crontab命令概覽      命令參數:   -u user:用來設定某個用戶的crontab服務,例如,“-u ixdba”表示設定ixdba用戶的crontab服務,此參數一般有root用