1. 程式人生 > >linux 硬碟分割槽和掛載詳解

linux 硬碟分割槽和掛載詳解

    使用者粘性------專案不夠吸引人
http://blog.chinaunix.net/uid-22627501-id-126485.html
關於linux 的磁碟掛載
      1   linux 下硬碟的命名方法
   linux兩種硬碟介面IDE和SCSI
對於IDE常用hdx 其中x為a,b,c,d.....
對於SCSI常用sdx 其中x為a,b,c,d....
      2  每塊硬碟最多有4個主分割槽(包括擴充套件分割槽)用編號1-4命名 然後擴充套件分割槽可以劃分為很多邏輯分割槽 只是邏輯分割槽必須從5開始(不管前面的主分割槽是不是完全被分配了)
      列如 sda1 sda2 sda3 ....hda1 hdb1
注意 上面a,b,c,d 和1,2,3,4的主要區別
     a,b,c,d 是不同的硬碟的命名方式而下面1,2,3,4是同一塊硬碟下面的不同分割槽的命名方式
     2   常見的命令
fdisk -l檢視機器所有硬碟的數目和具體情況(包括沒有掛載的)
df    如果需要檢視已經掛載了的硬碟

使用fdisk命令

[
[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 9729 55617030 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
/dev/hda10 7752 9729 15888253+ 83 Linux

Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)
/dev/sda2 26 125 806400 5 Extended
/dev/sda5 26 50 201568+ 83 Linux
/dev/sda6 51 76 200781 83 Linux

  通過上面的資訊,我們知道此機器中掛載兩個硬碟(或行動硬碟),其中一個是hda 另一個是sda ;如果我們想檢視單個硬碟情況,可以通過 fdisk -l /dev/hda1 或者fdisk -l /dev/sda1 來操作,進行一些單獨硬碟的操作;

  其中 hda有三個主分割槽(包括擴充套件分割槽),分別是主分割槽 hda1 hda2 和hda3(擴充套件分割槽) ;邏輯分割槽是 hda5到hda10

  其中 sda 有兩個主分割槽(包括擴充套件分割槽),分別是 hda1 和hda2 (擴充套件分割槽);邏輯分割槽是 sda5 hda6

  硬碟總容量=主分割槽(包括擴充套件分割槽)總容量

  擴充套件分割槽容量=邏輯分割槽總容量

  通過上面的例子,我們可以得知 hda=hda1+hda2+hda3,其中hda3=hda5+hda6+hda7+hda8+hda9+hda10 …… ……
其他的資訊的介紹(用自己的例子分析)

[email protected]
:/# fdisk -l

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002bfb2

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *        2048    41940991    20969472   83  Linux

Disk /dev/xvdb: 214.7 GB, 214748364800 bytes
224 heads, 32 sectors/track, 58514 cylinders, total 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb9d551e6

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdb1            2048   419430399   209714176   83  Linux

其中的
    255 heads: 255個磁頭
    63 sectors/track:每個磁軌63個扇區
    2610 cylinders:2610個磁柱
    total 419430400 sectors : 一共419430400多扇區
   
情況1:虛擬裝置  (查)
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
情況2:非虛擬裝置
    Units = cylinders of 16065 * 512 = 8225280 bytes

    16065=255*63 因為每一個磁頭都是在同一個柱面的,63表示每個磁軌上的扇區數量,這兩個數的乘積表示一個柱面上的扇區    數量;所以16065*512表示一個柱面的大小是8225280位元組
    Sector size (logical/physical): 512 bytes / 512 bytes
    表示一個扇區的大小是512位元組

         
    start:表示分割槽從這個磁柱開始
    end :表示分割槽在這個磁柱上結束
    block:容量(k) 比如
    hda1 Blocks=(765-1)x8225.280=6284113.92 K = 6284.113.92M  
    id和System 表示的是一個意思,id看起來不太直觀,我們要在fdisk 一個分割槽時,通過指定id來確認分割槽型別;比如 7表示的就NTFS 分割槽;這個在fdisk 中要通過t功能來指定。   
    3、估算一個儲存裝置是否被完全劃分

  我們估算一個硬碟是否完全被劃分,我們只要看 fdisk -l 輸出的內容中的 cylinders(柱體) 上一個分割槽的End 和 下一個分割槽的Start是不是一個連續的數字,另外要看一下每個硬碟裝置的fdisk -l 的開頭部份,看一下他的 cylinders(柱體)的值;

  比如hda裝置,我們看到的是 9729 cylinders ;我們通過 hda的分割槽表可以看到上一個分割槽的End的值+1 就是下一個分割槽的Start 的值;比如 hda2的Start的值是 hda1 的End 的值+1,這證明 hda1 和hda2 中間沒有空白分割槽,是連續的,以此類推;在 hda10,我們看到 End 的值是9729 ,而在fdisk -l頭部資訊中也有9729 cylinders,證明這個硬碟已經完全劃分;

Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)
/dev/sda2 26 125 806400 5 Extended
/dev/sda5 26 50 201568+ 83 Linux
/dev/sda6 51 76 200781 83 Linux

  我們再看看 sda 移動儲是不是被完全劃分了;sda有 125個cylinders (柱體),有一個主分割槽和一個擴充套件分割槽構成;在擴充套件分割槽中,我們看到End的值為125,而這個行動硬碟的cylinder也是125,這能說明這個硬碟不可能再新增任何主分割槽了;根據我們上面所說的 sda1 sda2 sda5 sda6 之間未有任何未劃分空間,但sda6 的cylinders (柱體)的End值卻是 76 ,而 sda總的cylinders (柱體)有125個,由此看來sda 在 sda6後面有未劃分區域;

  至於sda 有多少未劃分空間,我們算一下就知道了;擴充套件分割槽總容量是 806400 K ,大約是 806.400M左右,而邏輯分割槽 sda5 和sda6 的大小加起來是 400M左右,所以還仍有400M左右未劃分空間,並且只能劃分為鏈邏輯分割槽;
   
     1、fdisk 的說明;

  當我們通過 fdisk 裝置,進入相應裝置的操作時,會發現有如下的提示;以 fdisk /dev/sda 裝置為例,以下同;

[
[email protected]
beinan]# fdisk /dev/sda
Command (m for help): 在這裡按m ,就會輸出幫助;
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition 注:這是刪除一個分割槽的動作;
l list known partition types 注:l是列出分割槽型別,以供我們設定相應分割槽的型別;
m print this menu 注:m 是列出幫助資訊;
n add a new partition 注:新增一個分割槽;
o create a new empty DOS partition table
p print the partition table 注:p列出分割槽表;
q quit without saving changes 注:不儲存退出;
s create a new empty Sun disklabel
t change a partition's system id 注:t 改變分割槽型別;
u change display/entry units
v verify the partition table
w write table to disk and exit 注:把分割槽表寫入硬碟並退出;
x extra functionality (experts only) 注:擴充套件應用,專家功能;
       2、列出當前操作硬碟的分割槽情況,用p

Command (m for help): p
Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)
/dev/sda2 26 125 806400 5 Extended
/dev/sda5 26 50 201568+ 83 Linux
/dev/sda6 51 76 200781 83 Linux


3、通過fdisk的d指令來刪除一個分割槽

Command (m for help): p 注:列出分割槽情況;
Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)
/dev/sda2 26 125 806400 5 Extended
/dev/sda5 26 50 201568+ 83 Linux
/dev/sda6 51 76 200781 83 Linux
Command (m for help): d 注:執行刪除分割槽指定;
Partition number (1-6): 6 注:我想刪除 sda6 ,就在這裡輸入 6 ;
Command (m for help): p 注:再檢視一下硬碟分割槽情況,看是否刪除了?
Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)
/dev/sda2 26 125 806400 5 Extended
/dev/sda5 26 50 201568+ 83 Linux
Command (m for help):

  警告:刪除分割槽時要小心,請看好分割槽的序號,如果您刪除了擴充套件分割槽,擴充套件分割槽之下的邏輯分割槽都會刪除;所以操作時一定要小心;如果知道自己操作錯了,請不要驚慌,用q不儲存退出;切記切記!!!!在分割槽操作錯了之時,千萬不要輸入w儲存退出!!!
4、通過fdisk的n指令增加一個分割槽

Command (m for help): p
Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)
/dev/sda2 26 125 806400 5 Extended
/dev/sda5 26 50 201568+ 83 Linux
Command (m for help): n 注:增加一個分割槽;
Command action
l logical (5 or over) 注:增加邏輯分割槽,分割槽編號要大於5;為什麼要大於5,因為已經有sda5了;
p primary partition (1-4) 注:增加一個主分割槽;編號從 1-4 ;但sda1 和sda2都被佔用,所以只能從3開始;
p
Partition number (1-4): 3
No free sectors available 注:失敗中,為什麼失敗?

  注:我試圖增加一個主分割槽,看來是失敗了,為什麼失敗?因為我們看到主分割槽+擴充套件分割槽把整個磁碟都用光了,看擴充套件分割槽的End的值,再看一下 p輸出資訊中有125 cylinders;最好還是看前面部份;那裡有提到;

  所以我們只能增加邏輯分割槽了

Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l 注:在這裡輸入l,就進入劃分邏輯分割槽階段了;
First cylinder (51-125, default 51): 注:這個就是分割槽的Start 值;這裡最好直接按回車,如果您輸入了一個非預設的數字,會造成空間浪費;
Using default value 51
Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M 注:這個是定義分割槽大小的,+200M 就是大小為200M ;當然您也可以根據p提示的單位cylinder的大小來算,然後來指定 End的數值。回頭看看是怎麼算的;還是用+200M這個辦法來新增,這樣能直觀一點。如果您想新增一個10G左右大小的分割槽,請輸入 +10000M ;
Command (m for help):

  5、通過fdisk的t指令指定分割槽型別

Command (m for help): t 注:通過t來指定分割槽型別;
Partition number (1-6): 6 注:要改變哪個分割槽型別呢?我指定了6,其實也就是sda6
Hex code (type L to list codes):L 注:在這裡輸入L,就可以檢視分割槽型別的id了;
Hex code (type L to list codes): b 注:如果我想讓這個分割槽是 W95 FAT32 型別的,通過L檢視得知 b是表示的是,所以輸入了b;
Changed system type of partition 6 to b (W95 FAT32) 注:系統資訊,改變成功;是否是改變了,請用p檢視;
Command (m for help): p
Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)
/dev/sda2 26 125 806400 5 Extended
/dev/sda5 26 50 201568+ 83 Linux
/dev/sda6 51 75 201568+ b W95 FAT32

  6、fdisk 的退出,用q或者 w

  其中 q是 不儲存退出,w是儲存退出

  Command (m for help): w
  或
  Command (m for help): q

五、對分割槽進行格式化,以及載入

  先提示一下;用 mkfs.bfs mkfs.ext2 mkfs.jfs mkfs.msdos mkfs.vfatmkfs.cramfs mkfs.ext3 mkfs.minix mkfs.reiserfs mkfs.xfs 等命令來格式化分割槽,比如我想格式化 sda6為ext3檔案系統,則輸入;

  [[email protected] beinan]# mkfs.ext3 /dev/sda6

  如果我想載入 sda6到目前系統來存取檔案,應該有mount 命令,但首先您得建一個掛載目錄;比如 /mnt/sda6 ;

[[email protected] beinan]# mkdir /mnt/sda6
[[email protected] beinan]# mount /dev/sda6 /mnt/sda6
[[email protected] beinan]# df -lh
Filesystem 容量 已用 可用 已用% 掛載點
/dev/hda8 11G 8.4G 2.0G 81% /
/dev/shm 236M 0 236M 0% /dev/shm
/dev/hda10 16G 6.9G 8.3G 46% /mnt/hda10
/dev/sda6 191M 5.6M 176M 4% /mnt/sda6

  這樣我們就能進入 /mnt/sda6目錄,然後存取檔案了

增加!!!!!!!!!!!!!!!

df是使用

例1:列出各檔案系統的磁碟空間使用情況。

  $ df

  Filesystem 1 K-blocks Used Available Use% Mounted on

  /dev/hda2 1361587 1246406 44823 97% /

  linux中df命令的輸出清單的第1列是代表檔案系統對應的裝置檔案的路徑名(一般是硬碟上的分割槽);第2列給出分割槽包含的資料塊(1024位元組)的數目;第3,4列分別表示已用的和可用的資料塊數目。使用者也許會感到奇怪的是,第3,4列塊數之和不等於第2列中的塊數。這是因為預設的每個分割槽都留了少量空間供系統管理員使用。即使遇到普通使用者空間已滿的情況,管理員仍能登入和留有解決問題所需的工作空間。清單中Use% 列表示普通使用者空間使用的百分比,即使這一數字達到100%,分割槽仍然留有系統管理員使用的空間。最後,Mounted on列表示檔案系統的安裝點。



參考文獻 http://blog.chinaunix.net/uid-22627501-id-126485.html

相關推薦

linux 硬碟分割槽掛載

    使用者粘性------專案不夠吸引人 http://blog.chinaunix.net/uid-22627501-id-126485.html 關於linux 的磁碟掛載       1   linux 下硬碟的命名方法    linux兩種硬碟介面IDE和SCS

Linux硬碟分割槽掛載

一:分割槽[[email protected] ~]# fdisk -l                         //檢視沒有分割槽和掛載的硬碟資訊如下:Disk /dev/sda: 21.4 GB, 21474836480 bytes255 heads,

Linux硬碟分割槽掛載,inode,連結,swap/記憶體,程序,防火牆,網路,系統忘記密碼

=========================================================磁碟分割槽==掛載 df 檢視掛載狀態檢視分割槽 df -T 檢視檔案系統型別 df -i 檢視掛載狀態帶inode編號 df -h 大小變成G 硬碟滿有2種一種是編號滿了,一種是儲存空間

linux防火牆開啟關閉

以下兩種方法一、暫時開啟和關閉防火牆 1種 service方式檢視防火牆狀態: [[email protected] ~]# service iptables statusiptables:未執行防火牆。開啟防火牆(即時生效,重啟後失效):[[email 

Linux(四):Linux的打包壓縮

關於Linux的檔案操作,這裡彙總一下打包和壓縮的一些命令,以及命令使用的詳情。 打包(歸檔)和壓縮 歸檔,也稱為打包,指的是一個檔案或目錄的集合,而這個集合被儲存在一個檔案中。歸檔檔案沒有經過壓縮,因此,它佔用的空間是其中所有檔案和目錄的總和。通常,歸檔總是會和系統(資料)備份聯絡在一起。 和歸檔檔案類似

【轉】Linux系統編程---dupdup2

系統 強調 操作 attach bsp ads 正常的 註意 tdi 正常的文件描述符: 在linux下,通過open打開以文件後,會返回一個文件描述符,文件描述符會指向一個文件表,文件表中的節點指針會指向節點表。看下圖: 打開文件的內核數據結構 dup和dup2兩

linux Mysql 主從復制 原理介紹步驟

linux Mysql 主從復制 大家好,我是霸王卸甲,今天我給大家帶來的是linux數據庫中的主從復制的簡單介紹和步驟詳解。 主從復制 mysql主從復制 靈活 一主一從 主主復制 一主多從---擴展系統讀取的性能,因為讀是在從庫讀取的; 多主一從---5.7開始支持 聯級

【shell】Linux shell 之breakcontinue

shell break linux 腳本 break和continue都可以在循環中使用,但是兩個的功能有點不同,比如break是跳出整個循環,而continue則是跳出本次循環,繼續下個循環,下面我們會通過例子來演示這兩個的不同之處。 ** 例子:打印數字1-10,如果 i&gt

linux中FTP服務搭建--2.家目錄禁錮黑白名單

ip 地址 問題 ges 添加 無法 sftp 分享圖片 deny ecb 操作環境 1 操作系統 : redhat 6.5 IP 地址 : 192.168.10.128 主機名 : zred2 操作系統:win 7 IP地址: 192.168.10

linux後臺執行命令:&nohup

&    當在前臺執行某個作業時,終端被該作業佔據;可以在命令後面加上& 實現後臺執行。例如:sh test.sh &  適合在後臺執行的命令有f i n d、費時的排序及一些s h e l l指令碼。在後臺執行作業時要當心:需要使用者

硬碟分割槽備忘(主分割槽,擴充套件分割槽邏輯分割槽)以及Linux硬碟分割槽工具parted 介紹

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

linux】Valgrind工具集(十四):Cachegrind(快取分支預測分析器)

一、概述 Cachegrind,它模擬CPU中的一級快取I1,Dl和二級快取,能夠精確地指出程式中cache的丟失和命中。如果需要,它還能夠為我們提供cache丟失次數,記憶體引用次數,以及每行程式碼,每個函式,每個模組,整個程式產生的指令數。這對優化程式有很大的幫助。 Cach

linux】Valgrind工具集(十):SGCheck(檢查棧全域性陣列溢位)

一、概述 SGCheck是一種用於檢查棧中和全域性陣列溢位的工具。它的工作原理是使用一種啟發式方法,該方法源於對可能的堆疊形式和全域性陣列訪問的觀察。 棧中的資料:例如函式內宣告陣列int a[10],而不是malloc分配的,malloc分配的記憶體是在堆中。 SGCheck和Me

linux】Valgrind工具集(九):Memcheck檢查的內容方法

一、值的有效性 1、什麼是值的有效性? 英文原文是Valid-value (V) bits,直譯過來就是有效值(V)位。 我將它理解為值的有效性,就是判斷在記憶體或CPU的實體地址中儲存的資料是否有效,比如在記憶體中變數(int i)代表的物理位置(不是地址),沒有初始化,就去使用它

linux】Valgrind工具集(六):使用Valgrind gdbserverGDB除錯程式

一、概述 在Valgrind下執行的程式不是由CPU直接執行的。相反,它執行在Valgrind提供的合成CPU上。這就是偵錯程式在Valgrind上執行時無法除錯程式的原因。 二、快速入門 在使用Memcheck工具時使用GDB除錯程式,啟動方式如下: 1、valgrind

linuxLinux下檢視CPU型號,記憶體大小,硬碟空間的命令()

1 檢視CPU 1.1 檢視CPU個數 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:刪除重複行;wc –l命令:統計行數** 1.2 檢視CPU核數 # cat /proc/c

Linux下MongoDB安裝配置

1、建立MongoDB的安裝路徑 在/usr/local/  建立資料夾mongoDB 2、上傳檔案到Linux上的/usr/local/source目錄下 3、解壓檔案 進入到/usr/local/source目錄,執行如下命令:  tar -zxvf m

33.Linux-實現U盤自動掛載()

https://www.cnblogs.com/lifexy/p/7891883.html 33.Linux-實現U盤自動掛載(詳解) 1.當我們每次插入u盤後,都會自動創鍵U盤的裝置節點/dev/sda%d 這是因為裡面呼叫了device_create()實現的, busybox的md

Linux掛載以及mount命令用法

掛載概念 Linux中的根目錄以外的檔案要想被訪問,需要將其“關聯”到根目錄下的某個目錄來實現,這種關聯操作就是“掛載”,這個目錄就是“掛載點”,解除次關聯關係的過程稱之為“解除安裝”。 注意:“掛載點”的目錄需要以下幾個要求: (1)目錄事先存在,可以用mkdir

(轉)Linux的iptables做代理伺服器防火牆

https://blog.csdn.net/harryxlb/article/details/7339307 用Linux的iptables做代理伺服器和防火牆配置詳細介紹     代理/防火牆     1.iptables規則表 &n