日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LinuX 硬盘分区细节

發(fā)布時(shí)間:2024/3/12 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LinuX 硬盘分区细节 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

系統(tǒng)引導(dǎo)過程及硬盤分區(qū)結(jié)構(gòu)論述

作者:?zhy2111314
來自:?LinuxSir.Org ouc.edu.cn
摘要:?本文是理論性文檔,主要講述系統(tǒng)引導(dǎo)過程以及硬盤的物理結(jié)構(gòu);


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


一、系統(tǒng)引導(dǎo)過程簡介

系統(tǒng)引導(dǎo)過程主要由以下幾個(gè)步驟組成(以硬盤啟動(dòng)為例)
1、 開機(jī);
2、 BIOS加電自檢(POST---Power On Self Test),內(nèi)存地址為0fff:0000;
3、 將硬盤第一個(gè)扇區(qū)(0頭0道1扇區(qū),也就是Boot Sector)讀入內(nèi)存地址0000:7c00處;
4、 檢查(WORD)0000:7dfe是否等于0xaa55.若不等于則轉(zhuǎn)去嘗試其他介質(zhì);如果沒有其他啟動(dòng)介質(zhì),則顯示 ”No ROM BASIC” ,然后死機(jī);
5、 跳轉(zhuǎn)到0000:7c00處執(zhí)行MBR中的程序;
6、 MBR先將自己復(fù)制到0000:0600處,然后繼續(xù)執(zhí)行;
7、 在主分區(qū)表中搜索標(biāo)志為活動(dòng)的分區(qū).如果發(fā)現(xiàn)沒有活動(dòng)分區(qū)或者不止一個(gè)活動(dòng)分區(qū),則停止;
8、 將活動(dòng)分區(qū)的第一個(gè)扇區(qū)讀入內(nèi)存地址0000:7c00處;
9、 檢查(WORD)0000:7dfe是否等于0xaa55,若不等于則顯示 “Missing Operating System”,然后停止,或嘗試軟盤啟動(dòng);
10、 跳轉(zhuǎn)到0000:7c00處繼續(xù)執(zhí)行特定系統(tǒng)的啟動(dòng)程序;
11、 啟動(dòng)系統(tǒng).

以上步驟中(2),(3),(4),(5)步由BIOS的引導(dǎo)程序完成;(6),(7),(8),(9),(10)步由MBR中的引導(dǎo)程序完成.
一般多系統(tǒng)引導(dǎo)程序(如Smart Boot Manager, BootStar, PQBoot等)都是將標(biāo)準(zhǔn)主引導(dǎo)記錄替換成自己的引導(dǎo)程序,在運(yùn)行系統(tǒng)啟動(dòng)程序之前讓用戶選擇想要啟動(dòng)的分區(qū).而某些系統(tǒng)自帶的多系統(tǒng)引導(dǎo)程序(如 LILO,NT Loader等)則可以將自己的引導(dǎo)程序放在系統(tǒng)所處分區(qū)的第一個(gè)扇區(qū)中,在Linux中即為兩個(gè)扇區(qū)的SuperBlock.

注:以上步驟中使用的是標(biāo)準(zhǔn)的MBR,多系統(tǒng)引導(dǎo)程序的引導(dǎo)過程與此不同.


二、硬盤結(jié)構(gòu)及參數(shù)

3D參數(shù)(Disk Geometry):CHS(Cylinder/Head/Sector) C-Cylinder柱面數(shù)表示硬盤每面盤片上有幾條磁道,最大為1024(用10個(gè)二進(jìn)制位存儲(chǔ));H-Head磁頭數(shù)表示硬盤總共有幾個(gè)磁頭,也就是幾面盤片,最大為256(用8個(gè)二進(jìn)制位存儲(chǔ));S-Sector扇區(qū)數(shù)表示每條磁道上有幾個(gè)扇區(qū),最大為63(用6個(gè)二進(jìn)制位存儲(chǔ)).

1、引導(dǎo)扇區(qū)

Boot Sector組成
Boot Sector也就是硬盤的第一個(gè)扇區(qū),它由MBR(Master Boot Record), DPT(Disk Partition Table) 和 Boot Record ID三部分組成. MBR又稱為主引導(dǎo)記錄,占用Boot Sector的前446個(gè)字節(jié)(0~0x1BD),存放系統(tǒng)主引導(dǎo)程序(它負(fù)責(zé)從活動(dòng)分區(qū)中裝載并且運(yùn)行系統(tǒng)引導(dǎo)程序). DPT即主分區(qū)表占用64個(gè)字節(jié)(0x1BE~0x1FD),記錄磁盤的基本分區(qū)信息.主分區(qū)表分為四個(gè)分區(qū)項(xiàng),每項(xiàng)16個(gè)字節(jié),分別記錄每個(gè)主分區(qū)的信息(因此最多可以有四個(gè)主分區(qū)). Boot Record ID即引導(dǎo)區(qū)標(biāo)記占用兩個(gè)字節(jié)(0x1FE~0x1FF),對(duì)于合法引導(dǎo)區(qū),它等于0xaa55,這是判別引導(dǎo)區(qū)是否合法的標(biāo)志).

Boot Secor具體結(jié)構(gòu)如圖:

2、分區(qū)表結(jié)構(gòu)簡介

分區(qū)表由四個(gè)分區(qū)項(xiàng)構(gòu)成,每一項(xiàng)結(jié)構(gòu)如下:
BYTE State:分區(qū)狀態(tài),0=未激活,0x80=激活(注意此項(xiàng));
BYTE StartHead:分區(qū)起始磁頭號(hào);
WORD StartSC:分區(qū)起始扇區(qū)和柱面號(hào),底字節(jié)的底6位為扇區(qū)號(hào),高2位為柱面號(hào)的第9,10位,高字節(jié)為柱面號(hào)的低8位;
BYTE Type:分區(qū)類型,如0x0B=FAT32,0x83=Linux等,00表示此項(xiàng)未用;
BYTE EndHead:分區(qū)結(jié)束磁頭號(hào);
WORD EndSC:分區(qū)結(jié)束扇區(qū)和柱面號(hào),定義同前;
DWORD Relative:在線性尋址方式下的分區(qū)相對(duì)扇區(qū)地址(對(duì)于基本分區(qū)即為絕對(duì)地址);
DWORD Sectors:分區(qū)大小(總扇區(qū)數(shù)).
在DOS或Windows系統(tǒng)下,基本分區(qū)必須以柱面為單位劃分(Sectors*Heads個(gè)扇區(qū)),如對(duì)于CHS為764/256/63的硬盤,分區(qū)的最小尺寸為256*63*512/1048576=7.875MB.
由于硬盤的第一個(gè)扇區(qū)已經(jīng)被引導(dǎo)扇區(qū)占用,所以一般來說,硬盤的第一個(gè)磁道(0頭0道)的其余62個(gè)扇區(qū)是不會(huì)被分區(qū)占用的.某些分區(qū)軟件甚至將第一個(gè)柱面全部空出來.

擴(kuò)展分區(qū)結(jié)構(gòu)如圖:

硬件不同了

3D參數(shù)(Disk Geometry):CHS(Cylinder/Head/Sector) C-Cylinder柱面數(shù)表示硬盤每面盤片上有幾條磁道,最大為1024(用10個(gè)二進(jìn)制位存儲(chǔ));H-Head磁頭數(shù)表示硬盤總共有幾個(gè)磁頭,也就是幾面盤片,最大為256(用8個(gè)二進(jìn)制位存儲(chǔ));S-Sector扇區(qū)數(shù)表示每條磁道上有幾個(gè)扇區(qū),最大為63(用6個(gè)二進(jìn)制位存儲(chǔ)).

應(yīng)該注明以上是以前的磁盤結(jié)構(gòu)。比如我的硬盤就只有兩個(gè)盤面,單盤,但是有257heads, 磁道:7297 cylinders。扇區(qū)為63。

在Linux系統(tǒng)中存儲(chǔ)設(shè)備的兩種表示方法

作者:北南南北
來自:LinuxSir.Org
摘要:?硬盤和硬盤分區(qū)在Linux都表示為設(shè)備,按我們通俗的說法來說,就是怎么來表示或描述硬盤和或硬盤分區(qū),但這種描述應(yīng)該是科學(xué)和具體的;比如IDE硬盤,在Linux 可以表示為 /dev/hda、/dev/hdb ... ;SCSI 接口的硬盤、SATA接口的硬盤表示為/dev/sda、/dev/sdb ... ... ;而IDE接口的硬盤/dev/hda,也可以表示為hd0 ,而 SCSI 接口的如果是 /dev/sda ,另一種表示方法是sd0;

理解兩種表示方法有何用?至少GRUB引導(dǎo)管理器用到這些知識(shí);另外我們mount (掛載)文件系統(tǒng)(分區(qū)),也會(huì)用到這些知識(shí);

目錄索引

一、對(duì)于IDE接口的硬盤的兩種表示方法;

  • 1、IDE接口硬盤,對(duì)于整塊硬盤的兩種表示方法;
    2、IDE接口硬盤分區(qū)的兩種表示方法;

    ?

    • 1)硬盤分區(qū)的第一種表示方法/dev/hd[a-z]X;
      2)硬盤分區(qū)的第二種表示方法(hd[0-n],y);

二、關(guān)于SATA和SCSI接口的硬盤的兩種表示方法;

三、usb及1394接口的存儲(chǔ)設(shè)備和軟驅(qū)設(shè)備;

四、關(guān)于存儲(chǔ)設(shè)備的不同的表示方法的應(yīng)用;

  • 1、/dev/hd[a-z] 表示方法的應(yīng)用;

    ?

    • 1)用于mount 掛載文件系統(tǒng)(分區(qū))之用;
      2)用于GRUB中指定Linux的根分區(qū)的位置;

    2、hd[0-n] 表示方法的應(yīng)用;

五、關(guān)于本文;
六、參考文檔;
六、相關(guān)文檔;


++++++++++++++++++++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++++++++++++++++++++


一、對(duì)于IDE接口的硬盤的兩種表示方法;


1、IDE接口硬盤,對(duì)于整塊硬盤的兩種表示方法;

IDE接口中的整塊硬盤在Linux系統(tǒng)中表示為/dev/hd[a-z],比如/dev/hda,/dev/hdb ... ... 以此類推,有時(shí)/dev/hdc可能表示的是CDROM ,還是以具體的fdisk -l 輸出為準(zhǔn)吧;

另一種表示方法是hd[0-n] ,其中n是一個(gè)正整數(shù),比如hd0,hd1,hd2 ... ... hdn ;

如果機(jī)器中只有一塊硬盤,無論我們通過fdisk -l 列出的是/dev/hda 還是/dev/hdb ,都是hd0;如果機(jī)器中存在兩個(gè)或兩個(gè)以上的硬盤,第一個(gè)硬盤/dev/hda 另一種方法表示為hd0,第二個(gè)硬盤/dev/hdb,另一種表法是hd1 ;

感覺大家對(duì)hd0,hd1這種表示方法并不寞生,現(xiàn)在新的機(jī)器,在BIOS 中,在啟動(dòng)盤設(shè)置那塊,硬盤是有hd0,hd1之類的,這就是硬盤表示方法的一種;

對(duì)于/dev/hda 類似的表示方法,也并不寞生吧;我們?cè)贚inux通過fdisk -l 就可以查到硬盤是/dev/hda還是/dev/hdb;

?

[root@localhost ~]# 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 970 7791493+ 7 HPFS/NTFS
/dev/hda2 971 9729 70356667+ 5 Extended
/dev/hda5 971 2915 15623181 b W95 FAT32
/dev/hda6 2916 4131 9767488+ 83?linux
/dev/hda7 4132 5590 11719386 83?linux
/dev/hda8 5591 6806 9767488+ 83?linux
/dev/hda9 6807 9657 22900626 83?linux
/dev/hda10 9658 9729 578308+ 82?linux?swap / Solaris

?

請(qǐng)注意第一行, Disk /dev/hda: 80.0 GB, 80026361856 bytes ,這個(gè)就是表示機(jī)器中只有一個(gè)硬盤設(shè)備/dev/hda ,體積大小為 80.0G;下面的就是硬盤的分區(qū),每個(gè)分區(qū)都有詳細(xì)的信息,在這里不詳細(xì)說了;


2、IDE接口硬盤分區(qū)的兩種表示方法;


1)硬盤分區(qū)的第一種表示方法/dev/hd[a-z]X;

硬盤的分區(qū)也有兩種表示方法,一種是/dev/hd[a-z]X,這個(gè)a-z表示a、b、c......z ,X是一個(gè)從1開始的正整數(shù);比如/dev/hda1,/dev/hda2 .... /dev/hda6,/dev/hda7 ... ... 值得注意的是/dev/hd[a-z]X,如果X的值是1到4,表示硬盤的主分區(qū)(包含擴(kuò)展分區(qū));邏輯分區(qū)從是從5開始的,比如/dev/hda5肯定是邏輯分區(qū)了;

我 用fdisk -l 就能列出一個(gè)硬盤的分區(qū)表,比如:

?

[root@localhost ~]# 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 970 7791493+ 7 HPFS/NTFS
/dev/hda2 971 9729 70356667+ 5 Extended
/dev/hda5 971 2915 15623181 b W95 FAT32
/dev/hda6 2916 4131 9767488+ 83?linux
/dev/hda7 4132 5590 11719386 83?linux
/dev/hda8 5591 6806 9767488+ 83?linux
/dev/hda9 6807 9657 22900626 83?linux
/dev/hda10 9658 9729 578308+ 82?linux?swap / Solaris

?


2)硬盤分區(qū)的第二種表示方法(hd[0-n],y);

我們前面已經(jīng)說過了整塊硬盤也有兩種表示方法,一種是/dev/hd[a-z]的,另種方法是hd[0-n];

一個(gè)硬盤分區(qū)首先要大確認(rèn)在哪個(gè)硬盤,然后再確認(rèn)他所在的位置;做個(gè)比喻,比如我住在XXX賓館YYY號(hào)房間,我僅僅是告訴別人我在XXX賓館不夠的,還要告訴他YYY房間,這樣來找我的人才能找到我;所以我們要知道一個(gè)硬盤分區(qū),除了知道/dev/hd[a-z]以外,還要知道他在哪個(gè)位置,也就有前面所說的/dev/hd[a-z]X的說法,確認(rèn)了分區(qū)在/dev/hd[a-z]后,還要通過X來確認(rèn)具體位置;

本標(biāo)題中說的是另外一種表示方法 (hd[0-n],y),hd[0-n]我們知道這是硬盤的表示方法之一,如果不懂,請(qǐng)看看前面的東西吧;那這里的y是什么意思呢?y的值是 /dev/hd[a-z]X中的 X-1 ;

用實(shí)例來理解吧;

?

[root@localhost ~]# 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 970 7791493+ 7 HPFS/NTFS
/dev/hda2 971 9729 70356667+ 5 Extended
/dev/hda5 971 2915 15623181 b W95 FAT32
/dev/hda6 2916 4131 9767488+ 83?linux
/dev/hda7 4132 5590 11719386 83?linux
/dev/hda8 5591 6806 9767488+ 83?linux
/dev/hda9 6807 9657 22900626 83?linux
/dev/hda10 9658 9729 578308+ 82?linux?swap / Solaris

?

/dev/hda1 等同 (hd0,0)
/dev/hda2 等同 (hd0,1) 注:看好了,這個(gè)是擴(kuò)展分區(qū),在Linux還是Windows是不能掛載的;
/dev/hda5 等同 (hd0,4)
/dev/hda6 等同 (hd0,5)
/dev/hda7 等同 (hd0,6)
/dev/hda8 等同 (hd0,7)
... ...
/dev/hda10 同 (hd0,9)

對(duì)于機(jī)器中只有一個(gè)硬盤來說,無論在Linux通過/dev/hda 還是/dev/hdb ,用 hd[0-n]表示方法,都是hd0;所以如果您如果硬盤中列出來的是;

?

[root@localhost ~]# fdisk -l
Disk /dev/hdb: 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/hdb1 * 1 970 7791493+ 7 HPFS/NTFS
/dev/hdb2 971 9729 70356667+ 5 Extended
/dev/hdb5 971 2915 15623181 b W95 FAT32
/dev/hdb6 2916 4131 9767488+ 83?linux
/dev/hdb7 4132 5590 11719386 83?linux
/dev/hdb8 5591 6806 9767488+ 83?linux
/dev/hdb9 6807 9657 22900626 83?linux
/dev/hdb10 9658 9729 578308+ 82?linux?swap / Solaris

?

對(duì)于機(jī)器中只有一個(gè)硬盤來說,如果通過fdisk -l 列出來的是/dev/hdb的分區(qū)表;對(duì)應(yīng)關(guān)系和/dev/hda列出的分區(qū)表對(duì)應(yīng)關(guān)系一樣;

/dev/hdb1 等同 (hd0,0)
/dev/hdb2 等同 (hd0,1) 注:看好了,這個(gè)是擴(kuò)展分區(qū),在Linux還是Windows是不能掛載的;
/dev/hdb5 等同 (hd0,4)
/dev/hdb6 等同 (hd0,5)
/dev/hdb7 等同 (hd0,6)
/dev/hdb8 等同 (hd0,7)
... ...
/dev/hdb10 等同 (hd0,9)

注意:如果機(jī)器中有兩塊硬盤,那/dev/hda 另一種表示方法就是hd0,/dev/hdb 的另一種表示方法是hd1;這樣我們就理解 (hd[0-n],y)的寫法了吧;這樣機(jī)器只有單個(gè)硬盤或者多個(gè)硬盤,我們都知道怎么寫了;對(duì)不對(duì)?可能也不對(duì),那就請(qǐng)指正吧;


二、關(guān)于SATA和SCSI接口的硬盤的兩種表示方法;

理解方法和IDE接口的硬盤相同,只是把hd換成sd;

如果您的機(jī)器中比如有一個(gè)硬盤是/dev/hda ,也有一個(gè)硬盤是/dev/sda ,那/dev/sda的硬盤應(yīng)該是sd0; 具體每個(gè)分區(qū)用(sd[0-n],y)的表示方法和IDE接口中的算法相同,比如/dev/sda1 就是(sd0,0);


三、usb及1394接口的存儲(chǔ)設(shè)備和軟驅(qū)設(shè)備;

usb存儲(chǔ)設(shè)備也目前在內(nèi)核中在兩種驅(qū)動(dòng)方法,一種是模擬SCSI硬盤,通過fdisk -l 出現(xiàn)的是/dev/sd[0-n] ;如果是模擬SCSI設(shè)備的方法來驅(qū)動(dòng)。那usb 存儲(chǔ)設(shè)備在Linux的另一種表示方法和前面所說的SCSI和SATA的相同;

但目前新版本的內(nèi)核中,想拋棄模擬SCSI,我們通過fdisk 列系統(tǒng)存在的存儲(chǔ)設(shè)置時(shí)會(huì)出現(xiàn) /dev/uba 類似的;但目前這個(gè)驅(qū)動(dòng)并不成熟,比如大數(shù)據(jù)量表現(xiàn)不穩(wěn)定;其實(shí)USB接口的存儲(chǔ)設(shè)備,在Linux表現(xiàn)還是比較差;

1394接口存儲(chǔ)調(diào)備,在Linux中也是模擬SCSI,我們通過fdisk -l 后,出現(xiàn)的也是/dev/sd[0-n],另一種表示方法(sd[a-z],y)的理解請(qǐng)參照前面所說的; 1394接口的存儲(chǔ)設(shè)備在Linux表現(xiàn)極好,USB存儲(chǔ)如果相對(duì)1394接口的存儲(chǔ)表現(xiàn)來說,應(yīng)該不值不提,建議大家購買1394接口的存儲(chǔ)設(shè)備;

軟驅(qū)在Linux中,是/dev/fd0設(shè)備這是一般情況,另一種表示為fd0 ;

CDROM 或DVDROM ,以及COMBO ,一般的情況下是/dev/hdc ;看下面的例子,無論是 /dev/cdrom 還是/dev/dvd ,最后都指向了/dev/hdc;

?

[root@localhost ~]# ls -la /dev/cdrom
lrwxrwxrwx 1 root root 3 2005-12-14 /dev/cdrom -> hdc
[root@localhost ~]# ls -la /dev/dvd
lrwxrwxrwx 1 root root 3 2005-12-14 /dev/dvd -> hdc

?


四、關(guān)于存儲(chǔ)設(shè)備的不同的表示方法的應(yīng)用;


1、/dev/hd[a-z] 表示方法的應(yīng)用


1)用于mount 掛載文件系統(tǒng)(分區(qū))之用;

我們?cè)谇懊嫠f的,硬盤的分區(qū)/dev/hd[a-z]X表示方法,一般是用于掛載和讀取文件系統(tǒng)之用的;

?

[root@localhost ~]# 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 970 7791493+ 7 HPFS/NTFS
/dev/hda2 971 9729 70356667+ 5 Extended
/dev/hda5 971 2915 15623181 b W95 FAT32
/dev/hda6 2916 4131 9767488+ 83?linux
/dev/hda7 4132 5590 11719386 83?linux
/dev/hda8 5591 6806 9767488+ 83?linux
/dev/hda9 6807 9657 22900626 83?linux
/dev/hda10 9658 9729 578308+ 82?linux?swap / Solaris

?

比如我要掛載 /dev/hda9 到系統(tǒng)中;所以過程應(yīng)該是這樣的;

[root@localhost ~]# mkdir /opt/data/ 注:建立掛載點(diǎn)目錄;
[root@localhost ~]# mount /dev/hda9 /opt/data/ 注:掛載;

?

是不是掛載好了呢?看下面的信息,顯示已經(jīng)掛載好了,所以這時(shí)我們就能向/opt/data目錄寫東西了,寫的所有東西都記錄在了/dev/hda9上;

?

[root@localhost ~]# df -lh
Filesystem 容量 已用 可用 已用% 掛載點(diǎn)
/dev/hda7 11G 9.2G 1.1G 90% /
/dev/shm 236M 0 236M 0% /dev/shm
/dev/hda9 22G 3.9G 18G 18% /opt/data

?

注意:掛載得需要內(nèi)核支持,另外分區(qū)也得建立文件系統(tǒng),請(qǐng)參考相關(guān)文檔 ;


2)用于GRUB中指定Linux的根分區(qū)的位置;

在GRUB系統(tǒng)引導(dǎo)管理器,用命令行啟動(dòng)一個(gè)操作系統(tǒng)時(shí),要通過指定Linux根/所在的硬盤分區(qū) /dev/hd[a-z]X;比如 root=/dev/hda7 ;


2、hd[0-n] 表示方法的應(yīng)用;

這種一般是應(yīng)用在GRUB的/boot所位于的硬盤分區(qū)的指定上;在GRUB的命令行和GRUB的配置文件menu.lst 中都要應(yīng)用到;

比如我們要把GRUB寫到硬盤的MBR上,在GRUB的命令行模式中要通過root (hd[0-n],y)來指定;這里的root (hd[0-n],y),在GRUB中就/boot所位于的分區(qū);不要搞錯(cuò)了,有時(shí)/boot和Linux的根/并不是處于同一個(gè)分區(qū)的,就看您安裝Linux時(shí)怎么安裝的了;而我們前面所說的root=/dev/hd[a-z]X來指定的是Linux 根/所位于的分區(qū);雖然有時(shí)/boot和/同處一個(gè)分區(qū),但兩種表示方法在GRUB中各有用途;明白了吧;

比如/boot位于同一個(gè)硬盤分區(qū),就可以用類似下的方法來把GRUB寫到硬盤的MBR上;舉個(gè)例子;

?

[root@localhost ~]# grub 注:運(yùn)行GRUB;
grub> root (hd0,6) 注:比如/boot位于 (hd0,6)分區(qū)上,應(yīng)該這樣
?Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
?Checking if "/boot/grub/stage1" exists... yes
?Checking if "/boot/grub/stage2" exists... yes
?Checking if "/boot/grub/e2fs_stage1_5" exists... yes
?Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.
succeeded
?Running "install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,6)/boot/grub/stage2
/boot/grub/grub.conf"... succeeded
Done.
grub>quit 注:退出GRUB命令行模式;


如果您不懂,慢慢就會(huì)了,我這里寫的只是為了應(yīng)用罷了;如果您要搞懂為什么Linux的存儲(chǔ)設(shè)備表達(dá)上是這樣或者那樣的,還是建議您看看kernel的文檔;可能中文文檔并不能滿足您的需要,最好還是洋文的吧;

?


五、關(guān)于本文;

這篇關(guān)于存儲(chǔ)設(shè)備在Linux中有兩種不同的表達(dá)方法,可能說的有點(diǎn)復(fù)雜化了;用pandonny兄的話來說:“本來是理論性的概念的東西,寫得太理論性的東西新手反而看不懂,還是描述性的往往更容易被新手理解”。

這篇文檔主要是把抽象的概念具體化,我不知道初學(xué)的弟兄是否能看得懂,至少我已經(jīng)盡全力了,對(duì)我來說已經(jīng)是“北南技窮”。關(guān)于理論文面的文檔就是翻譯過來也是極為難翻譯的,更不要說簡單的描述了;初學(xué)Linux的弟兄,慢慢實(shí)踐著來吧;實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),相信這一真理絕對(duì)沒錯(cuò)!!千萬不要把我所說過的是真理,真理在你手中。。。。。。因?yàn)槟菍?shí)踐者;

本來寫GRUB入門文檔了,結(jié)果發(fā)現(xiàn)不寫一寫存儲(chǔ)設(shè)備的表示方法不太行,所以被迫寫了這篇文章,雖然勉強(qiáng),但還是寫出來了

合理規(guī)劃您的硬盤分區(qū)

作者:北南南北
來自:LinuxSir.Org
提要:對(duì)于一個(gè)硬盤(包括移動(dòng)存儲(chǔ)設(shè)備)如何規(guī)劃分區(qū)結(jié)構(gòu)及如何劃分才是比較合理的;為了減少由于硬盤劃分不合理而造成的風(fēng)險(xiǎn)及不必要的麻煩,有必要重述如何對(duì)一個(gè)硬盤的分區(qū)結(jié)構(gòu)進(jìn)行規(guī)劃;


+++++++++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++++++++


一、關(guān)于硬盤種類、物理幾何結(jié)構(gòu)及硬盤容量、分區(qū)大小計(jì)算;


1、硬盤種類、物理幾何結(jié)構(gòu)

硬盤的種類主要是SCSI 、IDE 、以及現(xiàn)在流行的SATA等;任何一種硬盤的生產(chǎn)都要一定的標(biāo)準(zhǔn);隨著相應(yīng)的標(biāo)準(zhǔn)的升級(jí),硬盤生產(chǎn)技術(shù)也在升級(jí);比如 SCSI標(biāo)準(zhǔn)已經(jīng)經(jīng)歷了SCSI-1 、SCSI-2、SCSI-3;其中目前咱們經(jīng)常在服務(wù)器網(wǎng)站看到的 Ultral-160就是基于SCSI-3標(biāo)準(zhǔn)的;IDE 遵循的是ATA標(biāo)準(zhǔn),而目前流行的SATA,是ATA標(biāo)準(zhǔn)的升級(jí)版本;IDE是并口設(shè)備,而SATA是串口,SATA的發(fā)展目的是替換IDE;

硬盤的物理幾何結(jié)構(gòu)是由盤、磁盤表面、柱面、扇區(qū)組成,一個(gè)張硬盤內(nèi)部是由幾張碟片疊加在一起,這樣形成一個(gè)柱體面;每個(gè)碟片都有上下表面;磁頭和磁盤表面接觸從而能讀取數(shù)據(jù);

2、硬盤容量及分區(qū)大小的算法;

我們通過fdsik -l 可以發(fā)現(xiàn)如下的信息:

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

?

其中 heads 是磁盤面;sectors 是扇區(qū);cylinders 是柱面;每個(gè)扇區(qū)大小是 512byte,也就是0.5K;

通過上面的例子,我們發(fā)現(xiàn)此硬盤有 255個(gè)磁盤面,有63個(gè)扇區(qū),有9729個(gè)柱面;所以整個(gè)硬盤體積換算公式應(yīng)該是:

磁面?zhèn)€數(shù) x 扇區(qū)個(gè)數(shù) x 每個(gè)扇區(qū)的大小512 x 柱面?zhèn)€數(shù) = 硬盤體積 (單位bytes)

所以在本例中磁盤的大小應(yīng)該計(jì)算如下:

255 x 63 x 512 x 9729 = 80023749120 bytes

提示:由于硬盤生產(chǎn)商和操作系統(tǒng)換算不太一樣,硬盤廠家以10進(jìn)位的辦法來換算,而操作系統(tǒng)是以2進(jìn)位制來換算,所以在換算成M或者G 時(shí),不同的算法結(jié)果卻不一樣;所以我們的硬盤有時(shí)標(biāo)出的是80G,在操作系統(tǒng)下看卻少幾M;

上面例子中,硬盤廠家算法 和 操作系統(tǒng)算數(shù)比較:

硬盤廠家:?80023749120 bytes = 80023749.120 K = 80023.749120 M (向大單位換算,每次除以1000)
操作系統(tǒng):?80023749120 bytes = 78148192.5 K = 76316.594238281 M (向大單位換算,每次除以1024)

我們?cè)诓榭捶謪^(qū)大小的時(shí)候,可以用生產(chǎn)廠家提供的算法來簡單推算分區(qū)的大小;把小數(shù)點(diǎn)向前移動(dòng)六位就是以G表示的大小;比如 hda1 的大小約為 6.144831G ;


二、關(guān)于硬盤分區(qū)劃分標(biāo)準(zhǔn)及合理分區(qū)結(jié)構(gòu);


1、硬盤分區(qū)劃分標(biāo)準(zhǔn)

硬盤的分區(qū)由主分區(qū)、擴(kuò)展分區(qū)和邏輯分區(qū)組成;所以我們?cè)趯?duì)硬盤分區(qū)時(shí)要遵循這個(gè)標(biāo)準(zhǔn);主分區(qū)(包括擴(kuò)展分區(qū))的最大個(gè)數(shù)是四個(gè),主分區(qū)(包含擴(kuò)展分區(qū))的個(gè)數(shù)硬盤的主引導(dǎo)記錄MBR(Master Boot Recorder)決定的,MBR存放啟動(dòng)管理程序(GRUB,LILO,NTLOARDER等)和分區(qū)表記錄。其中擴(kuò)展分區(qū)也算一個(gè)主分區(qū);擴(kuò)展分區(qū)下可以包含更多的邏輯分區(qū);所以主分區(qū)(包括擴(kuò)展分區(qū))范圍是從1-4,邏輯分區(qū)是從5開始的;比如下面的例子:

???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


通過這個(gè)例子,我們可以看到主分區(qū)有3個(gè),從 hda1-hda3 ,擴(kuò)展分區(qū)由 hda5-hda10 ;此硬盤沒有主分區(qū)4,所以也沒有顯示主分區(qū)hda4 ;但邏輯分區(qū)不可能從4開始,因?yàn)槟鞘侵鞣謪^(qū)的位置,明白了吧;

?


2、硬盤設(shè)備(包括移動(dòng)存儲(chǔ)設(shè)備)在Linux或者其它類Unix系統(tǒng)的表示;

IDE 硬盤在Linux或者其它類Unix系統(tǒng)的一般表示為 hd* ,比如hda、hdb ... ... ,我們可以通過 fdisk -l 來查看;有時(shí)您可能只有一個(gè)硬盤,在操作系統(tǒng)中看到的卻是 hdb ,這與硬盤的跳線有關(guān);另外hdc 大多表示是光驅(qū)設(shè)備;如果您有兩塊硬盤,大多是 hda和hdb。在這方面說的太多也無用,還是以fdisk -l 為準(zhǔn)為好;

SCSI 和SATA 硬盤在Linux通常也是表示為 sd* ,比如 sda 、sdb ... ... 以fdisk -l 為準(zhǔn)

移動(dòng)存儲(chǔ)設(shè)備在linux表示為 sd* ,比如 sda 、sdb ... ... 以fdisk -l 為準(zhǔn)


3、合理的規(guī)劃分區(qū);

關(guān)于一個(gè)磁盤的分區(qū),一個(gè)磁盤應(yīng)該有四個(gè)主分區(qū),其中擴(kuò)展也算一個(gè)主分區(qū);存在以下情況:

1)分區(qū)結(jié)構(gòu)之一:四個(gè)主分區(qū),沒有擴(kuò)展分區(qū);

?

[主|分區(qū)1] [主分|區(qū)2] [主|分區(qū)3] [主|分區(qū)4]

?

這種情況,如果您想在一個(gè)磁盤上劃分五個(gè)以上分區(qū),這樣是行不通的;


三個(gè)主分區(qū) 一個(gè)擴(kuò)展分區(qū);


[ 主 | 分區(qū)1 ] [ 主 | 分區(qū)2 ] [ 主 | 分區(qū)3 ] [擴(kuò)展分區(qū)]|[邏輯|分區(qū)5] [邏輯|分區(qū)6] [邏輯|分區(qū)7] [邏輯|分區(qū)8] ... ...

這種情況行得通,而且分區(qū)的自由度比較大;分區(qū)也不受約束,能分超過5個(gè)分區(qū);這只是舉一個(gè)例子;


2)最合理的的分區(qū)方式;

最合理的分區(qū)結(jié)構(gòu):主分區(qū)在前,擴(kuò)展分區(qū)在后,然后在擴(kuò)展分區(qū)中劃分邏輯分區(qū);主分區(qū)的個(gè)數(shù)+擴(kuò)展分區(qū)個(gè)數(shù)要控制在四個(gè)之內(nèi);比如下面的分區(qū)是比較好的;

[主|分區(qū)1] [主|分區(qū)2] [主|分區(qū)3] [擴(kuò)展分區(qū)]|[邏輯|分區(qū)5] [邏輯|分區(qū)6] [邏輯|分區(qū)7] [邏輯|分區(qū)8] ... ...


[主|分區(qū)1] [主|分區(qū)2] [擴(kuò)展分區(qū)]| [邏輯|分區(qū)5] [邏輯|分區(qū)6] [邏輯|分區(qū)7] [邏輯|分區(qū)8] ... ...


[主|分區(qū)1] [擴(kuò)展分區(qū)]| [邏輯|分區(qū)5] [邏輯|分區(qū)6] [邏輯|分區(qū)7] [邏輯|分區(qū)8] ... ...



最不合理的分區(qū)結(jié)構(gòu):?主分區(qū)包圍擴(kuò)展分區(qū);比如下面的;

[主|分區(qū)1] [主|分區(qū)2] [擴(kuò)展分區(qū)] [主|分區(qū)4] [空白未分區(qū)空間]|[邏輯|分區(qū)5] [邏輯|分區(qū)6] [邏輯|分區(qū)7] [邏輯|分區(qū)8] ... ...

這樣?[主|分區(qū)2]?和?[主|分區(qū)4]?之間的?[擴(kuò)展分區(qū)]?是有自由度,但[主|分區(qū)4]后的[空白未分區(qū)空間]怎么辦?除非把主分區(qū)4完全利用擴(kuò)展分區(qū)后的空間,否則您想在主分區(qū)4后再劃一個(gè)分區(qū)是不可能的,劃分邏輯分區(qū)更不可能; 雖然類似此種辦法也符合一個(gè)磁盤四個(gè)主分區(qū)的標(biāo)準(zhǔn),但這樣主分區(qū)包圍擴(kuò)展分區(qū)的分區(qū)方法實(shí)在不可取;

我們根據(jù)這個(gè)標(biāo)題,查看一下我們的例子,是不是符合這個(gè)標(biāo)準(zhǔn)呢?


???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





后記:

?

把分區(qū)基礎(chǔ)寫出來,主要是想讓新手弟兄知道什么是合理的分區(qū)結(jié)構(gòu),如果把硬盤分區(qū)規(guī)劃好了,也為以學(xué)習(xí)省卻了不少麻煩;在此文后,我計(jì)劃寫具體的分區(qū)工具介紹;這也算一個(gè)基礎(chǔ)知識(shí)的積累;雖然老手都會(huì),但新手可能還是需要的;


致謝:

對(duì)于本文zhy2111314?兄弟也有貢獻(xiàn);在此致謝;

linux?查看磁盤分區(qū)、文件系統(tǒng)、使用情況的命令和相關(guān)工具介紹

作者:北南南北
來自:LinuxSir.Org
提要:linux?磁盤分區(qū)表、文件系統(tǒng)的查看、統(tǒng)計(jì)的工具很多,有些工具是多功能的,不僅僅是查看磁盤的分區(qū)表,而且也能進(jìn)行磁盤分區(qū)的操作;但在本文,我們只講磁盤分區(qū)的查看,以及分區(qū)的使用情況的查看;本文只是給新手上路之用;關(guān)于分區(qū)工具的操作,我將在以后做專門介紹;

此文目的:主要是向初學(xué)者介紹一下入門必備的一點(diǎn)基礎(chǔ)知識(shí),有了基礎(chǔ)知識(shí)才能進(jìn)階;如果把所有的磁盤操作工具都放在一個(gè)文檔里,大家看了也累;基于這種想法,所以我寫文檔的時(shí)候,就想讓新手弟兄一目了解,能輕松點(diǎn)就輕松點(diǎn);生活、工作和學(xué)習(xí)無不是如此;

操作環(huán)境:Fedora core 4.0 i686 & Slackware 10.1


+++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++


一、df 命令;

df 是來自于coreutils 軟件包,系統(tǒng)安裝時(shí),就自帶的;我們通過這個(gè)命令可以查看磁盤的使用情況以及文件系統(tǒng)被掛載的位置;

舉例:

[root@localhost beinan]# df -lh Filesystem 容量 已用 可用 已用% 掛載點(diǎn) /dev/hda8 11G 6.0G 4.4G 58% / /dev/shm 236M 0 236M 0% /dev/shm /dev/sda1 56G 22G 35G 39% /mnt/sda1

我們從中可以看到,系統(tǒng)安裝在/dev/hda8 ;還有一個(gè)56G的磁盤分區(qū)/dev/sda1掛載在 /mnt/sda1中;

其它的參數(shù)請(qǐng)參考 man df


二、fdsik

fdisk 是一款強(qiáng)大的磁盤操作工具,來自u(píng)til-linux軟件包,我們?cè)谶@里只說他如何查看磁盤分區(qū)表及分區(qū)結(jié)構(gòu);參數(shù) -l ,通過-l 參數(shù),能獲得機(jī)器中所有的硬盤的分區(qū)情況;

[root@localhost 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中,表示的是分區(qū)的大小,Blocks的單位是byte ,我們可以換算成M,比如第一個(gè)分區(qū)/dev/hda1的大小如果換算成M,應(yīng)該是6144831/1024=6000M,也就是6G左右,其實(shí)沒有這么麻煩,粗略的看一下把小數(shù)點(diǎn)向前移動(dòng)三位,就知道大約的體積有多大了;
System 表示的文件系統(tǒng),比如/dev/hda1 是NTFS格式的;/dev/hda2 表示是fat32格式的文件系統(tǒng);.

在此例中,我們要特別注意的是/dev/hda3分區(qū),這是擴(kuò)展分區(qū);他下面包含著邏輯分區(qū),其實(shí)這個(gè)分區(qū)相當(dāng)于一個(gè)容器;從屬于她的有 hda5,hda6,hda7,hda8,hda9 ;

我們還注意到一點(diǎn),怎么沒有hda4呢?為什么hda4沒有包含在擴(kuò)展分區(qū)?一個(gè)磁盤最多有四個(gè)主分區(qū); hda1-4算都是主分區(qū);hda4不可能包含在擴(kuò)展分區(qū)里,另外擴(kuò)展分區(qū)也算主分區(qū);在本例中,沒有hda4這個(gè)分區(qū),當(dāng)然我們可以把其中的一個(gè)分區(qū)設(shè)置為主分區(qū),只是我當(dāng)時(shí)分區(qū)的時(shí)候沒有這么做而已;

再仔細(xì)統(tǒng)計(jì)一下,我們看一看這個(gè)磁盤是不是還有空間?hda1+hda2+hda3=實(shí)際已經(jīng)分區(qū)的體積,所以我們可以這樣算 hda1+hda2+hda3=6144831+16386300+39728745 = 62259876 (b),換算成M單位,小數(shù)點(diǎn)向前移三位,所以目前已經(jīng)劃分好的分區(qū)大約占用體積是62259.876(M),其實(shí)最精確的計(jì)算62259876/1024=60800.67(M);而這個(gè)磁盤大小是80.0 GB (80026361856byte),其實(shí)實(shí)際大小也就是78150.744(M);通過我們一系列的計(jì)算,我們可以得出這個(gè)硬盤目前還有使用的空間;大約還有18G未分區(qū)的空間;

fdisk -l 能列出機(jī)器中所有磁盤的個(gè)數(shù),也能列出所有磁盤分區(qū)情況;比如:

?

[root@localhost 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
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

?

通過上面我們可以知道此機(jī)器有兩塊硬盤,我們也可以指定fdisk -l 來查看其中一個(gè)硬盤的分區(qū)情況;

?

[root@localhost 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 這個(gè)磁盤中,只有一個(gè)分區(qū);使用量差不多是百分百了;

?

我們還可以來查看 /dev/hda的

[root@localhost beinan]# fdisk -l /dev/hda

?

自己試試看?

三、cfdisk 來自于util-linux的軟件包;

cfdisk 也是一款不錯(cuò)的分區(qū)工具;在有些發(fā)行版中,此工具已經(jīng)從util-linux包中剔除;cfdisk 簡單易用是他的特點(diǎn);和DOS中的fdisk 相似;在本標(biāo)題中,我們只來解說如何查看機(jī)器的中的磁盤分區(qū)狀況及所用的文件系統(tǒng)等;

查看磁盤分區(qū)的用法 cfdisk -Ps 磁盤設(shè)備名;
比如

[root@localhost beinan]cfdisk -Ps
[root@localhost beinan]cfdisk -Ps /dev/hda?
[root@localhost beinan]cfdisk -Ps
Partition Table for /dev/hda
???????????????First Last
?# Type Sector Sector Offset Length Filesystem Type (ID) Flag
-- ------- ----------- ----------- ------ ----------- -------------------- ----
?1 Primary 0 23438834 63 23438835?linux?(83) Boot
?2 Primary 23438835 156296384 0 132857550 Extended (05) None
?5 Logical 23438835 155268224 63 131829390?linux?(83) None
?6 Logical 155268225 156296384 63 1028160?linux?swap (82) None

?

我們只用的參數(shù) -Ps,就列出了磁盤的分區(qū)情況;目前在Slackware Debian Mandrake 等主流發(fā)行版中存在cfdisk ,而fedora 4.0把這個(gè)小工具剔除了;有點(diǎn)可惜;這是我在Slackware中操作的;

如果您這樣操作,就更直觀了;

[root@localhost beinan]cfdisk 磁盤設(shè)備名


舉例:

[root@localhost beinan]cfdisk /dev/hda

?

您所看到的是如下的模式:

?

????????????????????????????????????????cfdisk 2.12a
????????????????????????????????????Disk Drive: /dev/hda
??????????????????????????????Size: 80026361856 bytes, 80.0 GB
????????????????????Heads: 255 Sectors per Track: 63 Cylinders: 9729
????Name Flags Part Type FS Type [Label] Size (MB)
?-------------------------------------------------------------------------------------------
????hda1 Boot Primary?linux?ReiserFS 12000.69
????hda5 Logical?linux?ReiserFS 67496.65
????hda6 Logical?linux?swap 526.42
?????[Bootable] [ Delete ] [ Help ] [Maximize] [ Print ] [ Quit ]
?????[ Type ] [ Units ] [ Write ]
????????????????????????Toggle bootable flag of the current partition

?

您進(jìn)入了cfdisk 的操作界面;用鍵盤移動(dòng)指針到[Quit]就可以退出;


四、parted 功能不錯(cuò)的分區(qū)工具;在Fedora 4.0中有帶,可以自己安裝上;在此主題中,我們只說如何查看磁盤的分區(qū)情況;

調(diào)用方法簡單,parted 默認(rèn)是打開的設(shè)備是/dev/hda ,也可以自己指定;比如 parted /dev/hda 或/dev/sda 等;退出的方法是 quit

[root@localhost beinan]# parted
使用 /dev/hda
(parted) p
/dev/hda 的磁盤幾何結(jié)構(gòu):0.000-76319.085 兆字節(jié)
磁盤標(biāo)簽類型:msdos
Minor 起始點(diǎn) 終止點(diǎn) 類型 文件系統(tǒng) 標(biāo)志
1 0.031 6000.842 主分區(qū) ntfs 啟動(dòng)
2 6000.842 22003.088 主分區(qū) fat32 lba
3 22003.088 60800.690 擴(kuò)展分區(qū)
5 22003.119 30004.211 邏輯分區(qū) reiserfs
6 30004.242 40005.615 邏輯分區(qū) reiserfs
7 40005.646 40774.350 邏輯分區(qū)?linux-swap
8 40774.381 52219.094 邏輯分區(qū) ext3
9 52219.125 60800.690 邏輯分區(qū) reiserfs

?

我們?cè)趐artd 的操作面上,用p就可以列出當(dāng)前磁盤的分區(qū)情況,如果想要查看其它磁盤,可以用 select 功能,比如 select /dev/sda ;

五、qtparted ,與parted 相關(guān)的軟件還有qtparted ,也能查看到磁盤的結(jié)構(gòu)和所用的文件系統(tǒng),是圖形化的;

[beinan@localhost ~]# qtparted

圖形化的查看,一目了然;

點(diǎn)擊查看大圖?Original Image

六、sfdisk 也是一個(gè)分區(qū)工具,功能也多多;我們?cè)谶@里只說他的列磁盤分區(qū)情況的功能;

[root@localhost beinan]# sfdisk -l


自己看看吧;

?

sfdisk 有幾個(gè)很有用的功能;有興趣的弟兄不妨看看;


七、partx 也簡要的說一說,有些系統(tǒng)自帶了這個(gè)工具,功能也簡單,和fdisk 、parted、cfdisk 來說不值一提;不用也罷;

用法: partx 設(shè)備名

?

[root@localhost beinan]# partx /dev/hda
# 1: 63- 12289724 ( 12289662 sectors, 6292 MB)
# 2: 12289725- 45062324 ( 32772600 sectors, 16779 MB)
# 3: 45062325-124519814 ( 79457490 sectors, 40682 MB)
# 4: 0- -1 ( 0 sectors, 0 MB)
# 5: 45062388- 61448624 ( 16386237 sectors, 8389 MB)
# 6: 61448688- 81931499 ( 20482812 sectors, 10487 MB)
# 7: 81931563- 83505869 ( 1574307 sectors, 806 MB)
# 8: 83505933-106944704 ( 23438772 sectors, 12000 MB)
# 9: 106944768-124519814 ( 17575047 sectors, 8998 MB)

?

八、查看目前機(jī)器中的所有磁盤及分區(qū)情況:

[beinan@localhost ~]$ cat /proc/partitions
major minor #blocks name
???3 0 78150744 hda
???3 1 6144831 hda1
???3 2 16386300 hda2
???3 5 8193118 hda5
???3 6 10241406 hda6
???3 7 787153 hda7
???3 8 11719386 hda8
???3 9 8787523 hda9
???8 0 58605120 sda
???8 1 58604528 sda1



九、mac-fdisk 這個(gè)工具主要是用在Powerpc版本的Linux中,咱們常用X86版本中沒有這個(gè)工具;這個(gè)只是介紹一下

實(shí)例解說 fdisk 使用方法

作者:北南南北
來自:LinuxSir.Org
提要:fdisk 是一款功能強(qiáng)大的分區(qū)工具,也是目前在Unix類操作系統(tǒng)中最流行的工具之一;分區(qū)工具老字號(hào);本篇只介紹其最簡單的分區(qū)操作功能;


一、fdisk 的介紹;

fdisk - Partition table manipulator for?linux?,譯成中文的意思是磁盤分區(qū)表操作工具;本人譯的不太好,也沒有看中文文檔;其實(shí)就是分區(qū)工具;

fdsik 能劃分磁盤成為若干個(gè)區(qū),同時(shí)也能為每個(gè)分區(qū)指定分區(qū)的文件系統(tǒng),比如linux 、fat32、?linux?、linux swap 、fat16 以及其實(shí)類Unix類操作系統(tǒng)的文件系統(tǒng)等;當(dāng)然我們用fdisk 對(duì)磁盤操作分區(qū)時(shí),并不是一個(gè)終點(diǎn),我們還要對(duì)分區(qū)進(jìn)行格式化所需要的文件系統(tǒng);這樣一個(gè)分區(qū)才能使用;這和DOS中的fdisk 是類似的;


二、合理規(guī)劃您的硬盤分區(qū);

在操作分區(qū)之前,我們要明白硬盤分區(qū)一點(diǎn)理論,比如硬盤容量和分區(qū)大小的計(jì)算;對(duì)一個(gè)硬盤如何規(guī)劃分區(qū)等,請(qǐng)參考如下文檔,謝謝;

《合理規(guī)劃您的硬盤分區(qū)》


三、fdisk -l 查看硬盤及分區(qū)信息;

通過《合理規(guī)劃您的硬盤分區(qū)》?,我們知道主分區(qū)(包括擴(kuò)展分區(qū))的總個(gè)數(shù)不能超過四個(gè);也不能把擴(kuò)展分區(qū)包圍在主分區(qū)之間;根據(jù)這個(gè)原則,我們劃分硬盤分區(qū)就比較容易的多;也能為以后減少不必要的麻煩;


1、通過fdisk -l 查看機(jī)器所掛硬盤個(gè)數(shù)及分區(qū)情況;

?

[root@localhost 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




通過上面的信息,我們知道此機(jī)器中掛載兩個(gè)硬盤(或移動(dòng)硬盤),其中一個(gè)是hda 另一個(gè)是sda ;如果我們想查看單個(gè)硬盤情況,可以通過 fdisk -l /dev/hda1 或者fdisk -l /dev/sda1 來操作;以fdisk -l 輸出的硬盤標(biāo)識(shí)為準(zhǔn);

?

其中 hda有三個(gè)主分區(qū)(包括擴(kuò)展分區(qū)),分別是主分區(qū) hda1 hda2 和hda3(擴(kuò)展分區(qū)) ;邏輯分區(qū)是 hda5到hda10;
其中 sda 有兩個(gè)主分區(qū)(包括擴(kuò)展分區(qū)),分別是 hda1 和hda2 (擴(kuò)展分區(qū));邏輯分區(qū)是 sda5 hda6 ;

硬盤總?cè)萘?#61;主分區(qū)(包括擴(kuò)展分區(qū))總?cè)萘?br /> 擴(kuò)展分區(qū)容量=邏輯分區(qū)總?cè)萘?/p>

通過上面的例子,我們可以得知 hda=hda1+hda2+hda3,其中hda3=hda5+hda6+hda7+hda8+hda9+hda10 ... ...

2、關(guān)于fdisk -l 一些數(shù)值的說明;



Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

?

這個(gè)硬盤是80G的,有255個(gè)磁面;63個(gè)扇區(qū);9729個(gè)磁柱;每個(gè) cylinder(磁柱)的容量是 8225280 bytes=8225.280 K(約為)=8.225280M(約為);

?

分區(qū)序列 引導(dǎo) 開始 終止 容量 分區(qū)類型ID 分區(qū)類型
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

?

說明:

硬盤分區(qū)的表示:在Linux 是通過hd*x 或 sd*x 表示的,其中 * 表示的是a、b、c ... ... x表示的數(shù)字 1、2、3 ... ... hd大多是IDE硬盤;sd大多是SCSI或移動(dòng)存儲(chǔ);
引導(dǎo)(Boot):表示引導(dǎo)分區(qū),在上面的例子中 hda1 是引導(dǎo)分區(qū);
Start (開始):表示的一個(gè)分區(qū)從X cylinder(磁柱)開始;
End (結(jié)束):表示一個(gè)分區(qū)到 Y cylinder(磁柱)結(jié)束;
id和System 表示的是一個(gè)意思,id看起來不太直觀,我們要在fdisk 一個(gè)分區(qū)時(shí),通過指定id來確認(rèn)分區(qū)類型;比如 7表示的就NTFS 分區(qū);這個(gè)在fdisk 中要通過t功能來指定。下面的部份會(huì)提到;
Blocks(容量):這是我翻譯的,其實(shí)不準(zhǔn)確,表示的意思的確是容量的意思,其單位是K;一個(gè)分區(qū)容量的值是由下面的公式而來的;

Blocks = (相應(yīng)分區(qū)End數(shù)值 - 相應(yīng)分區(qū)Start數(shù)值)x 單位cylinder(磁柱)的容量

所以我們算一下 hda1的 Blocks 的大小 :

hda1 Blocks=(765-1)x8225.280=6284113.92 K = 6284.113.92M

注:換算單位以硬盤廠家提供的10進(jìn)位算起,如果以操作系統(tǒng)二進(jìn)制來算,這個(gè)分區(qū)容量應(yīng)該更少一些,得出的這個(gè)值和我們通過 fdisk -l 看到的 /dev/hda1的值是大體相當(dāng)?shù)?#xff0c;因?yàn)閾Q算方法不一樣,所以也不可能盡可能的精確;再加上分區(qū)時(shí)的一點(diǎn)損失之類,有時(shí)或大或小是存在的;

我們查看分區(qū)大小或者文件的時(shí)候,還是用十進(jìn)制來計(jì)算比較直觀;推算辦法是 byte 向前推小數(shù)點(diǎn)三位就是K ,K單位的值向前推小數(shù)點(diǎn)三位就是M,M向前推小數(shù)點(diǎn)三位就是G... ... 一般也差不了多少;這么算就行;


3、估算一個(gè)存儲(chǔ)設(shè)備是否被完全劃分;

我們估算一個(gè)硬盤是否完全被劃分,我們只要看 fdisk -l 輸出的內(nèi)容中的 cylinders(柱體) 上一個(gè)分區(qū)的End 和 下一個(gè)分區(qū)的Start是不是一個(gè)連續(xù)的數(shù)字,另外要看一下每個(gè)硬盤設(shè)備的fdisk -l 的開頭部份,看一下他的 cylinders(柱體)的值;

比如hda設(shè)備,我們看到的是 9729 cylinders ;我們通過 hda的分區(qū)表可以看到上一個(gè)分區(qū)的End的值+1 就是下一個(gè)分區(qū)的Start 的值;比如 hda2的Start的值是 hda1 的End 的值+1,這證明 hda1 和hda2 中間沒有空白分區(qū),是連續(xù)的,以此類推;在 hda10,我們看到 End 的值是9729 ,而在fdisk -l頭部信息中也有9729 cylinders,證明這個(gè)硬盤已經(jīng)完全劃分;

?

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

?

我們?cè)倏纯?sda 移動(dòng)儲(chǔ)是不是被完全劃分了;sda有 125個(gè)cylinders (柱體),有一個(gè)主分區(qū)和一個(gè)擴(kuò)展分區(qū)構(gòu)成;在擴(kuò)展分區(qū)中,我們看到End的值為125,而這個(gè)移動(dòng)硬盤的cylinder也是125,這能說明這個(gè)硬盤不可能再添加任何主分區(qū)了;根據(jù)我們上面所說的 sda1 sda2 sda5 sda6 之間未有任何未劃分空間,但sda6 的cylinders (柱體)的End值卻是 76 ,而 sda總的cylinders (柱體)有125個(gè),由此看來sda 在 sda6后面有未劃分區(qū)域;

至于sda 有多少未劃分空間,我們算一下就知道了;擴(kuò)展分區(qū)總?cè)萘渴?806400 K ,大約是 806.400M左右,而邏輯分區(qū) sda5 和sda6 的大小加起來是 400M左右,所以還仍有400M左右未劃分空間,并且只能劃分為鏈邏輯分區(qū);


四、fdisk 對(duì)硬盤及分區(qū)的操作,進(jìn)入fdisk 對(duì)硬盤操作階段;

我們可以對(duì)硬盤進(jìn)行分區(qū)操作,前提是您把fdisk -l 弄明白了;通過fdisk -l ,我們能找出機(jī)器中所有硬盤個(gè)數(shù)及設(shè)備名稱;比如上面的例子,我們會(huì)看到兩個(gè)設(shè)備一個(gè)是/dev/hda ,另一個(gè)是/dev/sda ;

fdisk 操作硬盤的命令格式如下:

?

[root@localhost beinan]# fdisk 設(shè)備

?

比如我們通過 fdisk -l 得知 /dev/hda 或者 /dev/sda設(shè)備;我們?nèi)绻朐偬砑踊蛘邉h除一些分區(qū),可以用

?

[root@localhost beinan]# fdisk /dev/hda

[root@localhost beinan]# fdisk /dev/sda

?

?在以后的例子中,我們要以 /dev/sda設(shè)備為例,來講解如何用fdisk 來操作添加、刪除分區(qū)等動(dòng)作;

1、fdisk 的說明;

當(dāng)我們通過 fdisk 設(shè)備,進(jìn)入相應(yīng)設(shè)備的操作時(shí),會(huì)發(fā)現(xiàn)有如下的提示;以 fdisk /dev/sda 設(shè)備為例,以下同;

?

[root@localhost beinan]# fdisk /dev/sda
Command (m for help): 在這里按m ,就會(huì)輸出幫助;
Command action
???a toggle a bootable flag
???b edit bsd disklabel
???c toggle the dos compatibility flag
???d delete a partition 注:這是刪除一個(gè)分區(qū)的動(dòng)作;
???l list known partition types 注:l是列出分區(qū)類型,以供我們?cè)O(shè)置相應(yīng)分區(qū)的類型;
???m print this menu 注:m 是列出幫助信息;
???n add a new partition 注:添加一個(gè)分區(qū);
???o create a new empty DOS partition table
???p print the partition table 注:p列出分區(qū)表;
???q quit without saving changes 注:不保存退出;
???s create a new empty Sun disklabel
???t change a partition's system id 注:t 改變分區(qū)類型;
???u change display/entry units
???v verify the partition table
???w write table to disk and exit 注:把分區(qū)表寫入硬盤并退出;
???x extra functionality (experts only) 注:擴(kuò)展應(yīng)用,專家功能;

?

其實(shí)我們常用的只有注有中文的,其它的功能我們不常用(呵,主要是我不會(huì)用,否則早會(huì)賣弄一下了);x擴(kuò)展功能,也不是常用的;一般的情況下只要懂得 d l m p q t w 就行了;

下面以實(shí)例操作來詳述,沒有例子沒有辦法就,新手也看不懂;

2、列出當(dāng)前操作硬盤的分區(qū)情況,用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指令來刪除一個(gè)分區(qū);



Command (m for help): p 注:列出分區(qū)情況;
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 注:執(zhí)行刪除分區(qū)指定;
Partition number (1-6): 6 注:我想刪除 sda6 ,就在這里輸入 6 ;
Command (m for help): p 注:再查看一下硬盤分區(qū)情況,看是否刪除了?
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ū)時(shí)要小心,請(qǐng)看好分區(qū)的序號(hào),如果您刪除了擴(kuò)展分區(qū),擴(kuò)展分區(qū)之下的邏輯分區(qū)都會(huì)刪除;所以操作時(shí)一定要小心;如果知道自己操作錯(cuò)了,請(qǐng)不要驚慌,用q不保存退出;切記切記!!!!在分區(qū)操作錯(cuò)了之時(shí),千萬不要輸入w保存退出!!!



4、通過fdisk的n指令增加一個(gè)分區(qū);



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 注:增加一個(gè)分區(qū);
Command action
???l logical (5 or over) 注:增加邏輯分區(qū),分區(qū)編號(hào)要大于5;為什么要大于5,因?yàn)橐呀?jīng)有sda5了;
???p primary partition (1-4) 注:增加一個(gè)主分區(qū);編號(hào)從 1-4 ;但sda1 和sda2都被占用,所以只能從3開始;
p
Partition number (1-4): 3
No free sectors available 注:失敗中,為什么失敗?

?

注:我試圖增加一個(gè)主分區(qū),看來是失敗了,為什么失敗?因?yàn)槲覀兛吹街鞣謪^(qū)+擴(kuò)展分區(qū)把整個(gè)磁盤都用光了,看擴(kuò)展分區(qū)的End的值,再看一下 p輸出信息中有125 cylinders;最好還是看前面部份;那里有提到;

所以我們只能增加邏輯分區(qū)了;

?

?Command (m for help): n
Command action
???l logical (5 or over)
???p primary partition (1-4)
l 注:在這里輸入l,就進(jìn)入劃分邏輯分區(qū)階段了;
First cylinder (51-125, default 51): 注:這個(gè)就是分區(qū)的Start 值;這里最好直接按回車,如果您輸入了一個(gè)非默認(rèn)的數(shù)字,會(huì)造成空間浪費(fèi);
Using default value 51
Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M 注:這個(gè)是定義分區(qū)大小的,+200M 就是大小為200M ;當(dāng)然您也可以根據(jù)p提示的單位cylinder的大小來算,然后來指定 End的數(shù)值。回頭看看是怎么算的;還是用+200M這個(gè)辦法來添加,這樣能直觀一點(diǎn)。如果您想添加一個(gè)10G左右大小的分區(qū),請(qǐng)輸入 +10000M ;
Command (m for help):





5、通過fdisk的t指令指定分區(qū)類型;



Command (m for help): t 注:通過t來指定分區(qū)類型;
Partition number (1-6): 6 注:要改變哪個(gè)分區(qū)類型呢?我指定了6,其實(shí)也就是sda6
Hex code (type L to list codes):L 注:在這里輸入L,就可以查看分區(qū)類型的id了;
Hex code (type L to list codes): b 注:如果我想讓這個(gè)分區(qū)是 W95 FAT32 類型的,通過L查看得知 b是表示的是,所以輸入了b;
Changed system type of partition 6 to b (W95 FAT32) 注:系統(tǒng)信息,改變成功;是否是改變了,請(qǐng)用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





7、一個(gè)添加分區(qū)的例子;

本例中我們會(huì)添加兩個(gè)200M的主分區(qū),其它為擴(kuò)展分區(qū),在擴(kuò)展分區(qū)中我們添加兩個(gè)200M大小的邏輯分區(qū);

?

?

Command (m for help): p 注:列出分區(qū)表;
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
Command (m for help): n 注:添加分區(qū);
Command action
???e extended
???p primary partition (1-4)
p 注:添加主分區(qū);
Partition number (1-4): 1 注:添加主分區(qū)1;
First cylinder (1-125, default 1): 注:直接回車,主分區(qū)1的起始位置;默認(rèn)為1,默認(rèn)就好;
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-125, default 125): +200M 注:指定分區(qū)大小,用+200M來指定大小為200M
Command (m for help): n 注:添加新分區(qū);
Command action
???e extended
???p primary partition (1-4)
p 注:添加主分區(qū)
Partition number (1-4): 2 注:添加主分區(qū)2;
First cylinder (26-125, default 26):
Using default value 26
Last cylinder or +size or +sizeM or +sizeK (26-125, default 125): +200M 注:指定分區(qū)大小,用+200M來指定大小為200M
Command (m for help): n
Command action
???e extended
???p primary partition (1-4)
e 注:添加擴(kuò)展分區(qū);
Partition number (1-4): 3 注:指定為3 ,因?yàn)橹鞣謪^(qū)已經(jīng)分了兩個(gè)了,這個(gè)也算主分區(qū),從3開始;
First cylinder (51-125, default 51): 注:直接回車;
Using default value 51
Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): 注:直接回車,把其余的所有空間都給擴(kuò)展分區(qū);
Using default value 125
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+ 83?linux
/dev/sda2 26 50 201600 83?linux
/dev/sda3 51 125 604800 5 Extended
Command (m for help): n
Command action
???l logical (5 or over)
???p primary partition (1-4)
l 注:添加邏輯分區(qū);
First cylinder (51-125, default 51):
Using default value 51
Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M 注:添加一個(gè)大小為200M大小的分區(qū);
Command (m for help): n
Command action
???l logical (5 or over)
???p primary partition (1-4)
l 注:添加一個(gè)邏輯分區(qū);
First cylinder (76-125, default 76):
Using default value 76
Last cylinder or +size or +sizeM or +sizeK (76-125, default 125): +200M 注:添加一個(gè)大小為200M大小的分區(qū);
Command (m for help): p 列出分區(qū)表;
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+ 83?linux
/dev/sda2 26 50 201600 83?linux
/dev/sda3 51 125 604800 5 Extended
/dev/sda5 51 75 201568+ 83?linux
/dev/sda6 76 100 201568+ 83?linux

?

然后我們根據(jù)前面所說通過t指令來改變分區(qū)類型;

最后不要忘記w保存退出;


五、對(duì)分區(qū)進(jìn)行格式化,以及加載;

先提示一下;用 mkfs.bfs mkfs.ext2 mkfs.jfs mkfs.msdos mkfs.vfatmkfs.cramfs mkfs.ext3 mkfs.minix mkfs.reiserfs mkfs.xfs 等命令來格式化分區(qū),比如我想格式化 sda6為ext3文件系統(tǒng),則輸入;

?

[root@localhost beinan]# mkfs.ext3 /dev/sda6

?

如果我想加載 sda6到目前系統(tǒng)來存取文件,應(yīng)該有mount 命令,但首先您得建一個(gè)掛載目錄;比如 /mnt/sda6 ;

?

[root@localhost beinan]# mkdir /mnt/sda6
[root@localhost beinan]# mount /dev/sda6 /mnt/sda6
[root@localhost beinan]# df -lh
Filesystem 容量 已用 可用 已用% 掛載點(diǎn)
/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

?

這樣我們就能進(jìn)入 /mnt/sda6目錄,然后存取文件了;

具體的權(quán)限方法,以及mount 更詳細(xì)的用法,在以后我會(huì)專門寫一個(gè)帖子;在一帖中放下所有的內(nèi)容實(shí)在有點(diǎn)為難;

后記:

在本文寫完后,我還要寫另一個(gè)分區(qū)工具parted;在 Fedora 4.0 中cfdisk 被去掉了;所以不想介紹這個(gè)工具

在Fedora core 4.0 加載NTFS和FAT32分區(qū)詳述

作者:北南南北
來自:LinuxSir.Org
提要:本文主要介紹ntfs文件系統(tǒng)分區(qū)及fat32格式分區(qū)的掛載方法:簡單的說就是讓Linux能讀取Windows系統(tǒng)下的分區(qū);


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
正文:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


一、最基本的幾個(gè)命令;


1、查看磁盤分區(qū)情況的命令fdisk -l ;

比如:

[root@localhost beinan]# /sbin/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

?

通過上面的我們可以知道 /dev/hda1 是NTFS格式;/dev/hda2是FAT32格式;


2、mount 命令;

就是磁盤分區(qū)的掛載命令,如果內(nèi)核支持的話,mount 命令能掛載幾乎所有的文件系統(tǒng),比如 reiserfs;ext2;ext3;ntfs;fat32;jfs等等;在Linux系統(tǒng)中,我們常用的主要有reiserfs;ext3;ext3;在Windows系統(tǒng)中,我們主要用的是NTFS;FAT32;FAT等;

mount 掛載磁盤分區(qū)的用法:
mount -t 文件格式 -o 選項(xiàng)參數(shù) 磁盤分區(qū) 掛載點(diǎn)目錄名


這樣說可能新手不太明白,什么是文件格式,什么是掛載點(diǎn)目錄名,我們要把一個(gè)分區(qū)加載到Linux,是不是得有個(gè)存放在地方?比如我們把/dev/hda1 掛載到/mnt/winc目錄中;首先我們要看是不是winc是否存在于/mnt目建錄中;如果沒有winc,我們必須建一個(gè);當(dāng)然掛載點(diǎn)目錄名是自己隨便起命名的,最好用英文;

?

例子在后面舉了,新手弟兄先知道有這回事就行了;

3、df -lh 磁盤使用情況的命令;這個(gè)重要吧;

[root@localhost beinan]# df -lh
Filesystem 容量 已用 可用 已用% 掛載點(diǎn)
/dev/hda8 11G 5.9G 4.5G 57% /
/dev/shm 236M 0 236M 0% /dev/shm
/dev/hda1 5.9G 3.2G 2.7G 55% /mnt/winc
/dev/hda2 16G 8.1G 7.7G 52% /mnt/wind
/dev/hda5 7.9G 5.8G 2.1G 74% /mnt/slack



4、文件和目錄的權(quán)限;

這個(gè)在論壇中,我寫過,有時(shí)間整理上來;知道umask=000是任何用戶都能讀寫執(zhí)行的就行了。有些東西慢慢就明白了,多執(zhí)行幾個(gè)命令就OK了。

5、內(nèi)核的版本;

[root@localhost beinan]# uname -a
linux?localhost.localdomain 2.6.11-1.1369_FC4 #1 Thu Jun 2 22:55:56 EDT 2005 i686 i686 i386 GNU/Linux


通過上面得知我目前用的內(nèi)核的版本是 2.6.11-1.1369_FC4

6.獲取root用戶的命令是su

[beinan@localhost ~]$ su
Password: 在這里輸入您的root密碼,即使輸入了,也不會(huì)顯示出來;我們要安裝RPM包,要用到root的超級(jí)權(quán)限;
[root@localhost beinan]#



二、NTFS文件系統(tǒng)的加載;


1、我們要首先確認(rèn)系統(tǒng)的內(nèi)核;我們要根據(jù)系統(tǒng)的內(nèi)核版本來下載支持ntfs的內(nèi)核補(bǔ)丁;

?

我們?cè)谇懊嬉呀?jīng)通過fdisk -l 得知/dev/hda1 是NTFS分區(qū);我們?nèi)绾渭虞d它呢?在Fedora core 4.0 中,系統(tǒng)默認(rèn)是不支持NTFS加載的;我們只能安裝第三方kernel的ntfs插件或者編內(nèi)核來實(shí)現(xiàn),相對(duì)于編譯內(nèi)核來說,插件是最方便的,也是最簡單的;

?

[root@localhost beinan]# uname -a
linux?localhost.localdomain 2.6.11-1.1369_FC4 #1 Thu Jun 2 22:55:56 EDT 2005 i686 i686 i386 GNU/Linux


一定要看仔細(xì),是2.6.11-1.1369_FC4,是i686的,沒有帶smp字樣的,smp是支持多處理器的內(nèi)核,如果您用這樣的內(nèi)核,就要下載相應(yīng)版本的smp的;

?

我們到哪去下載呢?

kernel ntfs 項(xiàng)目在 http://linux-ntfs.sourceforge.net

Fedora core 4.0的kernel NTFS的RPM包在:

http://linux-ntfs.sourceforge.net/rpm/fedora4.html

根據(jù)上面內(nèi)核的信息,我們要下載:2.6.11-1.1369_FC4 i686的,下載的應(yīng)該是:

kernel-module-ntfs-2.6.11-1.1369_FC4-2.1.22-0.rr.6.0.i686.rpm

地址: http://prdownloads.sourceforge.net/linux-ntfs/kernel-module-ntfs-2.6.11-1.1369_FC4-2.1.22-0.rr.6.0.i686.rpm

在這里選一個(gè)鏡像下載:

安裝kernel ntfs模塊:

[root@localhost beinan]# rpm -ivh kernel-module-ntfs*



2.判斷哪個(gè)分區(qū)是NTFS格式,加載NTFS分區(qū);

[root@localhost beinan]# /sbin/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

?

我們已經(jīng)把kernel ntfs的模式安裝好了,現(xiàn)在進(jìn)入NTFS的分區(qū)的加載過程;通過上面的查看,我們知道/dev/hda1是NTFS格式的;

1]我們要建一個(gè)掛載點(diǎn)的目錄,比如是在/mnt/目錄下建一個(gè)winc的目錄:

[root@localhost beinan]# mkdir /mnt/winc

2]把/dev/hda1 掛載到 /mnt/winc中,這樣我們?nèi)绻榭?dev/hda1磁盤內(nèi)容時(shí),就會(huì)在/mnt/winc中找得到;

[root@localhost beinan]# mount -t ntfs -o nls=utf8,umask=000 /dev/hda1 /mnt/winc

?

注:-t ntfs 說明文件系統(tǒng)的格式是ntfs的;-o是選項(xiàng) ,選項(xiàng)有什么呢?有nls=utf8 ,意思是Native Language Support(本地語言支持)是utf8,也就是大家常說的語言編碼;Fedora core 4.0 默認(rèn)的語言編碼就是utf8的,這樣能顯示出中文來;umask=000表示所有的用戶組都可讀可寫,但因?yàn)镹TFS在Linux中寫入不安全,所以只能讀,不能寫入;如果想寫入,只能自己編內(nèi)核來實(shí)現(xiàn);但意義并不是太大;

是不是掛載好了呢?

[root@localhost beinan]# df -lh
Filesystem 容量 已用 可用 已用% 掛載點(diǎn)
/dev/hda8 11G 5.9G 4.5G 57% /
/dev/shm 236M 0 236M 0% /dev/shm
/dev/hda1 5.9G 3.2G 2.7G 55% /mnt/winc


看來是掛載好了;我們進(jìn)入 /mnt/winc就知道是不是有內(nèi)容了;

[root@localhost beinan]# cd /mnt/winc
[root@localhost beinan]# ls



3]如何開機(jī)自動(dòng)加載NTFS文件系統(tǒng)的分區(qū);

我們要根據(jù)磁盤的位置,上面我們看到了是/dev/hda1,對(duì)不對(duì)?所以我在/etc/fstab文件中找加如下的一行;

/dev/hda1 /mnt/winc ntfs umask=000,nls=utf8



4]如何將這個(gè)磁盤分區(qū)放在GNOME或者KDE的桌面上呢?

在KDE下,只需要點(diǎn)一下鼠標(biāo),在桌面的空白處按鼠標(biāo)右鍵就可以找得到了;不多說了,太簡單;

?

在GNOME下也是極簡單的:

比如我是以beinan這個(gè)用戶登入的系統(tǒng),想在放在 beinan 這個(gè)用戶的GNOME桌面上;

[beinan@localhost ~]$ ln -s /mnt/winc/ ~beinan/Desktop/winc



三、FAT32文件系統(tǒng)的分區(qū)的加載;

通過fdisk -l ,我們也知道了 /dev/hda2是FAT32格式的;

/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)

?

Linux對(duì)FAT32的支持是可讀可寫的,所以沒有必要再安裝什么模塊之類的;

1.我們要建一個(gè)掛載點(diǎn)的目錄,比如是在/mnt/目錄下建一個(gè)wind的目錄:

[root@localhost beinan]# mkdir /mnt/wind



2.掛載 /dev/hda2 到/mnt/wind上

[root@localhost beinan]# mount -t vfat -o iocharset=utf8,umask=000 /dev/hda2 /mnt/wind/


看一下是不是掛載好了?

[root@localhost beinan]# df -lh
Filesystem 容量 已用 可用 已用% 掛載點(diǎn)
/dev/hda8 11G 5.9G 4.5G 57% /
/dev/shm 236M 0 236M 0% /dev/shm
/dev/hda1 5.9G 3.2G 2.7G 55% /mnt/winc
/dev/hda2 16G 8.1G 7.7G 52% /mnt/wind


看來是掛載好了;應(yīng)該進(jìn)去看看;

[root@localhost beinan]#cd /mnt/wind
[root@localhost beinan]#ls -lh?
drwxrwxrwx 3 root root 8.0K 7月 27 11:45 抓圖
drwxrwxrwx 2 root root 8.0K 8月 12 10:21 測試文件
drwxrwxrwx 4 root root 8.0K 7月 27 11:45 電腦硬件
drwxrwxrwx 5 root root 8.0K 7月 27 11:45 網(wǎng)際快車


中文支持沒有問題;這是我機(jī)器中的;

3.如何開機(jī)自動(dòng)加載fat文件系統(tǒng)的分區(qū);

我們要根據(jù)磁盤的位置,上面我們看到了是/dev/hda1,對(duì)不對(duì)?所以我在/etc/fstab文件中找加如下的一行;

/dev/hda2 /mnt/wind vfat umask=000,nls=utf8



4]如何將這個(gè)磁盤分區(qū)放在GNOME或者KDE的桌面上呢?

在KDE下,只需要點(diǎn)一下鼠標(biāo),在桌面的空白處按鼠標(biāo)右鍵就可以找得到了;不多說了,太簡單;

?

在GNOME下也是極簡單的:

比如我是以beinan這個(gè)用戶登入的系統(tǒng),想在放在 beinan 這個(gè)用戶的GNOME桌面上;

?

[beinan@localhost ~]$ ln -s /mnt/wind/ ~beinan/Desktop/wind



四、對(duì)于文本文件亂碼處理;?

比如我們看到有些文本文件內(nèi)容是亂碼,我們可以用gedit 打開,然后另存為utf8格式就OK了;

?

?

后記:雖然寫的詳細(xì),但我不敢保證所有初學(xué)者都能會(huì)操作,但我感覺80%初學(xué)者還是按步驟操作不會(huì)有問題;

總結(jié)

以上是生活随笔為你收集整理的LinuX 硬盘分区细节的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。