LinuX 硬盘分区细节详谈 【 整理至 LinuxSir BY FreeXploiT 】
系統(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)過程主要由以下幾個步驟組成(以硬盤啟動為例)
1、 開機;
2、 BIOS加電自檢(POST---Power On Self Test),內(nèi)存地址為0fff:0000;
3、 將硬盤第一個扇區(qū)(0頭0道1扇區(qū),也就是Boot Sector)讀入內(nèi)存地址0000:7c00處;
4、 檢查(WORD)0000:7dfe是否等于0xaa55.若不等于則轉(zhuǎn)去嘗試其他介質(zhì);如果沒有其他啟動介質(zhì),則顯示 ”No ROM BASIC” ,然后死機;
5、 跳轉(zhuǎn)到0000:7c00處執(zhí)行MBR中的程序;
6、 MBR先將自己復(fù)制到0000:0600處,然后繼續(xù)執(zhí)行;
7、 在主分區(qū)表中搜索標志為活動的分區(qū).如果發(fā)現(xiàn)沒有活動分區(qū)或者不止一個活動分區(qū),則停止;
8、 將活動分區(qū)的第一個扇區(qū)讀入內(nèi)存地址0000:7c00處;
9、 檢查(WORD)0000:7dfe是否等于0xaa55,若不等于則顯示 “Missing Operating System”,然后停止,或嘗試軟盤啟動;
10、 跳轉(zhuǎn)到0000:7c00處繼續(xù)執(zhí)行特定系統(tǒng)的啟動程序;
11、 啟動系統(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等)都是將標準主引導(dǎo)記錄替換成自己的引導(dǎo)程序,在運行系統(tǒng)啟動程序之前讓用戶選擇想要啟動的分區(qū).而某些系統(tǒng)自帶的多系統(tǒng)引導(dǎo)程序(如 LILO,NT Loader等)則可以將自己的引導(dǎo)程序放在系統(tǒng)所處分區(qū)的第一個扇區(qū)中,在Linux中即為兩個扇區(qū)的SuperBlock.
注:以上步驟中使用的是標準的MBR,多系統(tǒng)引導(dǎo)程序的引導(dǎo)過程與此不同.
二、硬盤結(jié)構(gòu)及參數(shù)
3D參數(shù)(Disk Geometry):CHS(Cylinder/Head/Sector) C-Cylinder柱面數(shù)表示硬盤每面盤片上有幾條磁道,最大為1024(用10個二進制位存儲);H-Head磁頭數(shù)表示硬盤總共有幾個磁頭,也就是幾面盤片,最大為256(用8個二進制位存儲);S-Sector扇區(qū)數(shù)表示每條磁道上有幾個扇區(qū),最大為63(用6個二進制位存儲).
1、引導(dǎo)扇區(qū)
Boot Sector組成
Boot Sector也就是硬盤的第一個扇區(qū),它由MBR(Master Boot Record), DPT(Disk Partition Table) 和 Boot Record ID三部分組成. MBR又稱為主引導(dǎo)記錄,占用Boot Sector的前446個字節(jié)(0~0x1BD),存放系統(tǒng)主引導(dǎo)程序(它負責從活動分區(qū)中裝載并且運行系統(tǒng)引導(dǎo)程序). DPT即主分區(qū)表占用64個字節(jié)(0x1BE~0x1FD),記錄磁盤的基本分區(qū)信息.主分區(qū)表分為四個分區(qū)項,每項16個字節(jié),分別記錄每個主分區(qū)的信息(因此最多可以有四個主分區(qū)). Boot Record ID即引導(dǎo)區(qū)標記占用兩個字節(jié)(0x1FE~0x1FF),對于合法引導(dǎo)區(qū),它等于0xaa55,這是判別引導(dǎo)區(qū)是否合法的標志).
Boot Secor具體結(jié)構(gòu)如圖:
2、分區(qū)表結(jié)構(gòu)簡介
分區(qū)表由四個分區(qū)項構(gòu)成,每一項結(jié)構(gòu)如下:
BYTE State:分區(qū)狀態(tài),0=未激活,0x80=激活(注意此項);
BYTE StartHead:分區(qū)起始磁頭號;
WORD StartSC:分區(qū)起始扇區(qū)和柱面號,底字節(jié)的底6位為扇區(qū)號,高2位為柱面號的第9,10位,高字節(jié)為柱面號的低8位;
BYTE Type:分區(qū)類型,如0x0B=FAT32,0x83=Linux等,00表示此項未用;
BYTE EndHead:分區(qū)結(jié)束磁頭號;
WORD EndSC:分區(qū)結(jié)束扇區(qū)和柱面號,定義同前;
DWORD Relative:在線性尋址方式下的分區(qū)相對扇區(qū)地址(對于基本分區(qū)即為絕對地址);
DWORD Sectors:分區(qū)大小(總扇區(qū)數(shù)).
在DOS或Windows系統(tǒng)下,基本分區(qū)必須以柱面為單位劃分(Sectors*Heads個扇區(qū)),如對于CHS為764/256/63的硬盤,分區(qū)的最小尺寸為256*63*512/1048576=7.875MB.
由于硬盤的第一個扇區(qū)已經(jīng)被引導(dǎo)扇區(qū)占用,所以一般來說,硬盤的第一個磁道(0頭0道)的其余62個扇區(qū)是不會被分區(qū)占用的.某些分區(qū)軟件甚至將第一個柱面全部空出來.
擴展分區(qū)結(jié)構(gòu)如圖:
硬件不同了
3D參數(shù)(Disk Geometry):CHS(Cylinder/Head/Sector) C-Cylinder柱面數(shù)表示硬盤每面盤片上有幾條磁道,最大為1024(用10個二進制位存儲);H-Head磁頭數(shù)表示硬盤總共有幾個磁頭,也就是幾面盤片,最大為256(用8個二進制位存儲);S-Sector扇區(qū)數(shù)表示每條磁道上有幾個扇區(qū),最大為63(用6個二進制位存儲).
應(yīng)該注明以上是以前的磁盤結(jié)構(gòu)。比如我的硬盤就只有兩個盤面,單盤,但是有257heads, 磁道:7297 cylinders。扇區(qū)為63。
在Linux系統(tǒng)中存儲設(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)管理器用到這些知識;另外我們mount (掛載)文件系統(tǒng)(分區(qū)),也會用到這些知識;
目錄索引
一、對于IDE接口的硬盤的兩種表示方法;
1、IDE接口硬盤,對于整塊硬盤的兩種表示方法;2、IDE接口硬盤分區(qū)的兩種表示方法;???
?
??? 1)硬盤分區(qū)的第一種表示方法/dev/hd[a-z]X;2)硬盤分區(qū)的第二種表示方法(hd[0-n],y);
二、關(guān)于SATA和SCSI接口的硬盤的兩種表示方法;
???三、usb及1394接口的存儲設(shè)備和軟驅(qū)設(shè)備;
???四、關(guān)于存儲設(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)文檔;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
一、對于IDE接口的硬盤的兩種表示方法;
1、IDE接口硬盤,對于整塊硬盤的兩種表示方法;
IDE接口中的整塊硬盤在Linux系統(tǒng)中表示為/dev/hd[a-z],比如/dev/hda,/dev/hdb ... ... 以此類推,有時/dev/hdc可能表示的是CDROM ,還是以具體的fdisk -l 輸出為準吧;
???????另一種表示方法是hd[0-n] ,其中n是一個正整數(shù),比如hd0,hd1,hd2 ... ... hdn ;
???????如果機器中只有一塊硬盤,無論我們通過fdisk -l 列出的是/dev/hda 還是/dev/hdb ,都是hd0;如果機器中存在兩個或兩個以上的硬盤,第一個硬盤/dev/hda 另一種方法表示為hd0,第二個硬盤/dev/hdb,另一種表法是hd1 ;
???????感覺大家對hd0,hd1這種表示方法并不寞生,現(xiàn)在新的機器,在BIOS 中,在啟動盤設(shè)置那塊,硬盤是有hd0,hd1之類的,這就是硬盤表示方法的一種;
???????對于/dev/hda 類似的表示方法,也并不寞生吧;我們在Linux通過fdisk -l 就可以查到硬盤是/dev/hda還是/dev/hdb;
????????
??????? [root@localhost ~]# fdisk -lDisk /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???????
?
???????請注意第一行, Disk /dev/hda: 80.0 GB, 80026361856 bytes ,這個就是表示機器中只有一個硬盤設(shè)備/dev/hda ,體積大小為 80.0G;下面的就是硬盤的分區(qū),每個分區(qū)都有詳細的信息,在這里不詳細說了;
???????
2、IDE接口硬盤分區(qū)的兩種表示方法;
1)硬盤分區(qū)的第一種表示方法/dev/hd[a-z]X;
硬盤的分區(qū)也有兩種表示方法,一種是/dev/hd[a-z]X,這個a-z表示a、b、c......z ,X是一個從1開始的正整數(shù);比如/dev/hda1,/dev/hda2 .... /dev/hda6,/dev/hda7 ... ... 值得注意的是/dev/hd[a-z]X,如果X的值是1到4,表示硬盤的主分區(qū)(包含擴展分區(qū));邏輯分區(qū)從是從5開始的,比如/dev/hda5肯定是邏輯分區(qū)了;
???????我 用fdisk -l 就能列出一個硬盤的分區(qū)表,比如:
????????
??????? [root@localhost ~]# fdisk -lDisk /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];
一個硬盤分區(qū)首先要大確認在哪個硬盤,然后再確認他所在的位置;做個比喻,比如我住在XXX賓館YYY號房間,我僅僅是告訴別人我在XXX賓館不夠的,還要告訴他YYY房間,這樣來找我的人才能找到我;所以我們要知道一個硬盤分區(qū),除了知道/dev/hd[a-z]以外,還要知道他在哪個位置,也就有前面所說的/dev/hd[a-z]X的說法,確認了分區(qū)在/dev/hd[a-z]后,還要通過X來確認具體位置;
???????本標題中說的是另外一種表示方法 (hd[0-n],y),hd[0-n]我們知道這是硬盤的表示方法之一,如果不懂,請看看前面的東西吧;那這里的y是什么意思呢?y的值是 /dev/hd[a-z]X中的 X-1 ;
???????用實例來理解吧;
????????
??????? [root@localhost ~]# fdisk -lDisk /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) 注:看好了,這個是擴展分區(qū),在Linux還是Windows是不能掛載的;
/dev/hda5 等同 (hd0,4)
/dev/hda6 等同 (hd0,5)
/dev/hda7 等同 (hd0,6)
/dev/hda8 等同 (hd0,7)
... ...
/dev/hda10 同 (hd0,9)
對于機器中只有一個硬盤來說,無論在Linux通過/dev/hda 還是/dev/hdb ,用 hd[0-n]表示方法,都是hd0;所以如果您如果硬盤中列出來的是;
????????
??????? [root@localhost ~]# fdisk -lDisk /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???????
?
???????對于機器中只有一個硬盤來說,如果通過fdisk -l 列出來的是/dev/hdb的分區(qū)表;對應(yīng)關(guān)系和/dev/hda列出的分區(qū)表對應(yīng)關(guān)系一樣;
???????/dev/hdb1 等同 (hd0,0)
/dev/hdb2 等同 (hd0,1) 注:看好了,這個是擴展分區(qū),在Linux還是Windows是不能掛載的;
/dev/hdb5 等同 (hd0,4)
/dev/hdb6 等同 (hd0,5)
/dev/hdb7 等同 (hd0,6)
/dev/hdb8 等同 (hd0,7)
... ...
/dev/hdb10 等同 (hd0,9)
注意:如果機器中有兩塊硬盤,那/dev/hda 另一種表示方法就是hd0,/dev/hdb 的另一種表示方法是hd1;這樣我們就理解 (hd[0-n],y)的寫法了吧;這樣機器只有單個硬盤或者多個硬盤,我們都知道怎么寫了;對不對?可能也不對,那就請指正吧;
???????
二、關(guān)于SATA和SCSI接口的硬盤的兩種表示方法;
理解方法和IDE接口的硬盤相同,只是把hd換成sd;
???????如果您的機器中比如有一個硬盤是/dev/hda ,也有一個硬盤是/dev/sda ,那/dev/sda的硬盤應(yīng)該是sd0; 具體每個分區(qū)用(sd[0-n],y)的表示方法和IDE接口中的算法相同,比如/dev/sda1 就是(sd0,0);
???????
三、usb及1394接口的存儲設(shè)備和軟驅(qū)設(shè)備;
usb存儲設(shè)備也目前在內(nèi)核中在兩種驅(qū)動方法,一種是模擬SCSI硬盤,通過fdisk -l 出現(xiàn)的是/dev/sd[0-n] ;如果是模擬SCSI設(shè)備的方法來驅(qū)動。那usb 存儲設(shè)備在Linux的另一種表示方法和前面所說的SCSI和SATA的相同;
???????但目前新版本的內(nèi)核中,想拋棄模擬SCSI,我們通過fdisk 列系統(tǒng)存在的存儲設(shè)置時會出現(xiàn) /dev/uba 類似的;但目前這個驅(qū)動并不成熟,比如大數(shù)據(jù)量表現(xiàn)不穩(wěn)定;其實USB接口的存儲設(shè)備,在Linux表現(xiàn)還是比較差;
???????1394接口存儲調(diào)備,在Linux中也是模擬SCSI,我們通過fdisk -l 后,出現(xiàn)的也是/dev/sd[0-n],另一種表示方法(sd[a-z],y)的理解請參照前面所說的; 1394接口的存儲設(shè)備在Linux表現(xiàn)極好,USB存儲如果相對1394接口的存儲表現(xiàn)來說,應(yīng)該不值不提,建議大家購買1394接口的存儲設(shè)備;
???????軟驅(qū)在Linux中,是/dev/fd0設(shè)備這是一般情況,另一種表示為fd0 ;
???????CDROM 或DVDROM ,以及COMBO ,一般的情況下是/dev/hdc ;看下面的例子,無論是 /dev/cdrom 還是/dev/dvd ,最后都指向了/dev/hdc;
????????
??????? [root@localhost ~]# ls -la /dev/cdromlrwxrwxrwx 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)于存儲設(shè)備的不同的表示方法的應(yīng)用;
1、/dev/hd[a-z] 表示方法的應(yīng)用
1)用于mount 掛載文件系統(tǒng)(分區(qū))之用;
我們在前面所說的,硬盤的分區(qū)/dev/hd[a-z]X表示方法,一般是用于掛載和讀取文件系統(tǒng)之用的;
????????
??????? [root@localhost ~]# fdisk -lDisk /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 ~]# mount /dev/hda9 /opt/data/ 注:掛載;???????
?
???????是不是掛載好了呢?看下面的信息,顯示已經(jīng)掛載好了,所以這時我們就能向/opt/data目錄寫東西了,寫的所有東西都記錄在了/dev/hda9上;
????????
??????? [root@localhost ~]# df -lhFilesystem 容量 已用 可用 已用% 掛載點
/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),請參考相關(guān)文檔 ;
???????
2)用于GRUB中指定Linux的根分區(qū)的位置;
在GRUB系統(tǒng)引導(dǎo)管理器,用命令行啟動一個操作系統(tǒng)時,要通過指定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ū);不要搞錯了,有時/boot和Linux的根/并不是處于同一個分區(qū)的,就看您安裝Linux時怎么安裝的了;而我們前面所說的root=/dev/hd[a-z]X來指定的是Linux 根/所位于的分區(qū);雖然有時/boot和/同處一個分區(qū),但兩種表示方法在GRUB中各有用途;明白了吧;
???????比如/boot位于同一個硬盤分區(qū),就可以用類似下的方法來把GRUB寫到硬盤的MBR上;舉個例子;
????????
??????? [root@localhost ~]# grub 注:運行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命令行模式;???????
如果您不懂,慢慢就會了,我這里寫的只是為了應(yīng)用罷了;如果您要搞懂為什么Linux的存儲設(shè)備表達上是這樣或者那樣的,還是建議您看看kernel的文檔;可能中文文檔并不能滿足您的需要,最好還是洋文的吧;
?
???????
五、關(guān)于本文;
這篇關(guān)于存儲設(shè)備在Linux中有兩種不同的表達方法,可能說的有點復(fù)雜化了;用pandonny兄的話來說:“本來是理論性的概念的東西,寫得太理論性的東西新手反而看不懂,還是描述性的往往更容易被新手理解”。
???????這篇文檔主要是把抽象的概念具體化,我不知道初學(xué)的弟兄是否能看得懂,至少我已經(jīng)盡全力了,對我來說已經(jīng)是“北南技窮”。關(guān)于理論文面的文檔就是翻譯過來也是極為難翻譯的,更不要說簡單的描述了;初學(xué)Linux的弟兄,慢慢實踐著來吧;實踐是檢驗真理的唯一標準,相信這一真理絕對沒錯!!千萬不要把我所說過的是真理,真理在你手中。。。。。。因為您是實踐者;
???????本來寫GRUB入門文檔了,結(jié)果發(fā)現(xiàn)不寫一寫存儲設(shè)備的表示方法不太行,所以被迫寫了這篇文章,雖然勉強,但還是寫出來了
???????合理規(guī)劃您的硬盤分區(qū)
???????作者:北南南北
來自:LinuxSir.Org
提要:對于一個硬盤(包括移動存儲設(shè)備)如何規(guī)劃分區(qū)結(jié)構(gòu)及如何劃分才是比較合理的;為了減少由于硬盤劃分不合理而造成的風險及不必要的麻煩,有必要重述如何對一個硬盤的分區(qū)結(jié)構(gòu)進行規(guī)劃;
+++++++++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++++++++
一、關(guān)于硬盤種類、物理幾何結(jié)構(gòu)及硬盤容量、分區(qū)大小計算;
1、硬盤種類、物理幾何結(jié)構(gòu)
硬盤的種類主要是SCSI 、IDE 、以及現(xiàn)在流行的SATA等;任何一種硬盤的生產(chǎn)都要一定的標準;隨著相應(yīng)的標準的升級,硬盤生產(chǎn)技術(shù)也在升級;比如 SCSI標準已經(jīng)經(jīng)歷了SCSI-1 、SCSI-2、SCSI-3;其中目前咱們經(jīng)常在服務(wù)器網(wǎng)站看到的 Ultral-160就是基于SCSI-3標準的;IDE 遵循的是ATA標準,而目前流行的SATA,是ATA標準的升級版本;IDE是并口設(shè)備,而SATA是串口,SATA的發(fā)展目的是替換IDE;
???????硬盤的物理幾何結(jié)構(gòu)是由盤、磁盤表面、柱面、扇區(qū)組成,一個張硬盤內(nèi)部是由幾張碟片疊加在一起,這樣形成一個柱體面;每個碟片都有上下表面;磁頭和磁盤表面接觸從而能讀取數(shù)據(jù);
2、硬盤容量及分區(qū)大小的算法;
我們通過fdsik -l 可以發(fā)現(xiàn)如下的信息:
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 是柱面;每個扇區(qū)大小是 512byte,也就是0.5K;
???????通過上面的例子,我們發(fā)現(xiàn)此硬盤有 255個磁盤面,有63個扇區(qū),有9729個柱面;所以整個硬盤體積換算公式應(yīng)該是:
磁面?zhèn)€數(shù) x 扇區(qū)個數(shù) x 每個扇區(qū)的大小512 x 柱面?zhèn)€數(shù) = 硬盤體積 (單位bytes)
所以在本例中磁盤的大小應(yīng)該計算如下:
???????255 x 63 x 512 x 9729 = 80023749120 bytes
???????提示:由于硬盤生產(chǎn)商和操作系統(tǒng)換算不太一樣,硬盤廠家以10進位的辦法來換算,而操作系統(tǒng)是以2進位制來換算,所以在換算成M或者G 時,不同的算法結(jié)果卻不一樣;所以我們的硬盤有時標出的是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)
我們在查看分區(qū)大小的時候,可以用生產(chǎn)廠家提供的算法來簡單推算分區(qū)的大小;把小數(shù)點向前移動六位就是以G表示的大小;比如 hda1 的大小約為 6.144831G ;
???????
二、關(guān)于硬盤分區(qū)劃分標準及合理分區(qū)結(jié)構(gòu);
1、硬盤分區(qū)劃分標準
硬盤的分區(qū)由主分區(qū)、擴展分區(qū)和邏輯分區(qū)組成;所以我們在對硬盤分區(qū)時要遵循這個標準;主分區(qū)(包括擴展分區(qū))的最大個數(shù)是四個,主分區(qū)(包含擴展分區(qū))的個數(shù)硬盤的主引導(dǎo)記錄MBR(Master Boot Recorder)決定的,MBR存放啟動管理程序(GRUB,LILO,NTLOARDER等)和分區(qū)表記錄。其中擴展分區(qū)也算一個主分區(qū);擴展分區(qū)下可以包含更多的邏輯分區(qū);所以主分區(qū)(包括擴展分區(qū))范圍是從1-4,邏輯分區(qū)是從5開始的;比如下面的例子:
/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ū)有3個,從 hda1-hda3 ,擴展分區(qū)由 hda5-hda10 ;此硬盤沒有主分區(qū)4,所以也沒有顯示主分區(qū)hda4 ;但邏輯分區(qū)不可能從4開始,因為那是主分區(qū)的位置,明白了吧;
?
???????
2、硬盤設(shè)備(包括移動存儲設(shè)備)在Linux或者其它類Unix系統(tǒng)的表示;
IDE 硬盤在Linux或者其它類Unix系統(tǒng)的一般表示為 hd* ,比如hda、hdb ... ... ,我們可以通過 fdisk -l 來查看;有時您可能只有一個硬盤,在操作系統(tǒng)中看到的卻是 hdb ,這與硬盤的跳線有關(guān);另外hdc 大多表示是光驅(qū)設(shè)備;如果您有兩塊硬盤,大多是 hda和hdb。在這方面說的太多也無用,還是以fdisk -l 為準為好;
???????SCSI 和SATA 硬盤在Linux通常也是表示為 sd* ,比如 sda 、sdb ... ... 以fdisk -l 為準
???????移動存儲設(shè)備在linux表示為 sd* ,比如 sda 、sdb ... ... 以fdisk -l 為準
???????
3、合理的規(guī)劃分區(qū);
關(guān)于一個磁盤的分區(qū),一個磁盤應(yīng)該有四個主分區(qū),其中擴展也算一個主分區(qū);存在以下情況:
1)分區(qū)結(jié)構(gòu)之一:四個主分區(qū),沒有擴展分區(qū);
?
??????? [主|分區(qū)1] [主分|區(qū)2] [主|分區(qū)3] [主|分區(qū)4]????????
???????這種情況,如果您想在一個磁盤上劃分五個以上分區(qū),這樣是行不通的;
???????
三個主分區(qū) 一個擴展分區(qū);
這種情況行得通,而且分區(qū)的自由度比較大;分區(qū)也不受約束,能分超過5個分區(qū);這只是舉一個例子;
???????
2)最合理的的分區(qū)方式;
最合理的分區(qū)結(jié)構(gòu):主分區(qū)在前,擴展分區(qū)在后,然后在擴展分區(qū)中劃分邏輯分區(qū);主分區(qū)的個數(shù)+擴展分區(qū)個數(shù)要控制在四個之內(nèi);比如下面的分區(qū)是比較好的;
最不合理的分區(qū)結(jié)構(gòu): 主分區(qū)包圍擴展分區(qū);比如下面的;
這樣 [主|分區(qū)2] 和 [主|分區(qū)4] 之間的 [擴展分區(qū)] 是有自由度,但[主|分區(qū)4]后的[空白未分區(qū)空間]怎么辦?除非把主分區(qū)4完全利用擴展分區(qū)后的空間,否則您想在主分區(qū)4后再劃一個分區(qū)是不可能的,劃分邏輯分區(qū)更不可能; 雖然類似此種辦法也符合一個磁盤四個主分區(qū)的標準,但這樣主分區(qū)包圍擴展分區(qū)的分區(qū)方法實在不可取;
???????我們根據(jù)這個標題,查看一下我們的例子,是不是符合這個標準呢?
/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é)習省卻了不少麻煩;在此文后,我計劃寫具體的分區(qū)工具介紹;這也算一個基礎(chǔ)知識的積累;雖然老手都會,但新手可能還是需要的;
???????
致謝:
對于本文zhy2111314 兄弟也有貢獻;在此致謝;
???????linux 查看磁盤分區(qū)、文件系統(tǒng)、使用情況的命令和相關(guān)工具介紹
???????作者:北南南北
來自:LinuxSir.Org
提要:linux 磁盤分區(qū)表、文件系統(tǒng)的查看、統(tǒng)計的工具很多,有些工具是多功能的,不僅僅是查看磁盤的分區(qū)表,而且也能進行磁盤分區(qū)的操作;但在本文,我們只講磁盤分區(qū)的查看,以及分區(qū)的使用情況的查看;本文只是給新手上路之用;關(guān)于分區(qū)工具的操作,我將在以后做專門介紹;
此文目的:主要是向初學(xué)者介紹一下入門必備的一點基礎(chǔ)知識,有了基礎(chǔ)知識才能進階;如果把所有的磁盤操作工具都放在一個文檔里,大家看了也累;基于這種想法,所以我寫文檔的時候,就想讓新手弟兄一目了解,能輕松點就輕松點;生活、工作和學(xué)習無不是如此;
???????操作環(huán)境:Fedora core 4.0 i686 & Slackware 10.1
???????
+++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++
一、df 命令;
df 是來自于coreutils 軟件包,系統(tǒng)安裝時,就自帶的;我們通過這個命令可以查看磁盤的使用情況以及文件系統(tǒng)被掛載的位置;
舉例:
??????? [root@localhost beinan]# df -lhFilesystem??????????? 容量? 已用 可用 已用% 掛載點/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 ;還有一個56G的磁盤分區(qū)/dev/sda1掛載在 /mnt/sda1中;
???????其它的參數(shù)請參考 man df
???????
二、fdsik
fdisk 是一款強大的磁盤操作工具,來自util-linux軟件包,我們在這里只說他如何查看磁盤分區(qū)表及分區(qū)結(jié)構(gòu);參數(shù) -l ,通過-l 參數(shù),能獲得機器中所有的硬盤的分區(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 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,比如第一個分區(qū)/dev/hda1的大小如果換算成M,應(yīng)該是6144831/1024=6000M,也就是6G左右,其實沒有這么麻煩,粗略的看一下把小數(shù)點向前移動三位,就知道大約的體積有多大了;
System 表示的文件系統(tǒng),比如/dev/hda1 是NTFS格式的;/dev/hda2 表示是fat32格式的文件系統(tǒng);.
在此例中,我們要特別注意的是/dev/hda3分區(qū),這是擴展分區(qū);他下面包含著邏輯分區(qū),其實這個分區(qū)相當于一個容器;從屬于她的有 hda5,hda6,hda7,hda8,hda9 ;
???????我們還注意到一點,怎么沒有hda4呢?為什么hda4沒有包含在擴展分區(qū)?一個磁盤最多有四個主分區(qū); hda1-4算都是主分區(qū);hda4不可能包含在擴展分區(qū)里,另外擴展分區(qū)也算主分區(qū);在本例中,沒有hda4這個分區(qū),當然我們可以把其中的一個分區(qū)設(shè)置為主分區(qū),只是我當時分區(qū)的時候沒有這么做而已;
???????再仔細統(tǒng)計一下,我們看一看這個磁盤是不是還有空間?hda1+hda2+hda3=實際已經(jīng)分區(qū)的體積,所以我們可以這樣算 hda1+hda2+hda3=6144831+16386300+39728745 = 62259876 (b),換算成M單位,小數(shù)點向前移三位,所以目前已經(jīng)劃分好的分區(qū)大約占用體積是62259.876(M),其實最精確的計算62259876/1024=60800.67(M);而這個磁盤大小是80.0 GB (80026361856byte),其實實際大小也就是78150.744(M);通過我們一系列的計算,我們可以得出這個硬盤目前還有使用的空間;大約還有18G未分區(qū)的空間;
???????fdisk -l 能列出機器中所有磁盤的個數(shù),也能列出所有磁盤分區(qū)情況;比如:
????????
??????? [root@localhost beinan]# fdisk -lDisk /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???????
?
???????通過上面我們可以知道此機器有兩塊硬盤,我們也可以指定fdisk -l 來查看其中一個硬盤的分區(qū)情況;
????????
??????? [root@localhost beinan]# fdisk -l /dev/sdaDisk /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 這個磁盤中,只有一個分區(qū);使用量差不多是百分百了;
?
???????我們還可以來查看 /dev/hda的
?
???????自己試試看?
三、cfdisk 來自于util-linux的軟件包;
cfdisk 也是一款不錯的分區(qū)工具;在有些發(fā)行版中,此工具已經(jīng)從util-linux包中剔除;cfdisk 簡單易用是他的特點;和DOS中的fdisk 相似;在本標題中,我們只來解說如何查看機器的中的磁盤分區(qū)狀況及所用的文件系統(tǒng)等;
查看磁盤分區(qū)的用法 cfdisk -Ps 磁盤設(shè)備名;
比如
[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把這個小工具剔除了;有點可惜;這是我在Slackware中操作的;
???????如果您這樣操作,就更直觀了;
舉例:
?
???????您所看到的是如下的模式:
????????
??????? ????????????????????????????????????????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???????
?
???????您進入了cfdisk 的操作界面;用鍵盤移動指針到[Quit]就可以退出;
???????
四、parted 功能不錯的分區(qū)工具;在Fedora 4.0中有帶,可以自己安裝上;在此主題中,我們只說如何查看磁盤的分區(qū)情況;
調(diào)用方法簡單,parted 默認是打開的設(shè)備是/dev/hda ,也可以自己指定;比如 parted /dev/hda 或/dev/sda 等;退出的方法是 quit
使用 /dev/hda
(parted) p
/dev/hda 的磁盤幾何結(jié)構(gòu):0.000-76319.085 兆字節(jié)
磁盤標簽類型:msdos
Minor 起始點 終止點 類型 文件系統(tǒng) 標志
1 0.031 6000.842 主分區(qū) ntfs 啟動
2 6000.842 22003.088 主分區(qū) fat32 lba
3 22003.088 60800.690 擴展分區(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???????
?
???????我們在partd 的操作面上,用p就可以列出當前磁盤的分區(qū)情況,如果想要查看其它磁盤,可以用 select 功能,比如 select /dev/sda ;
五、qtparted ,與parted 相關(guān)的軟件還有qtparted ,也能查看到磁盤的結(jié)構(gòu)和所用的文件系統(tǒng),是圖形化的;
[beinan@localhost ~]# qtparted
圖形化的查看,一目了然;
??????? ???????點擊查看大圖?Original Image
???????六、sfdisk 也是一個分區(qū)工具,功能也多多;我們在這里只說他的列磁盤分區(qū)情況的功能;
自己看看吧;
?
???????sfdisk 有幾個很有用的功能;有興趣的弟兄不妨看看;
???????
七、partx 也簡要的說一說,有些系統(tǒng)自帶了這個工具,功能也簡單,和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)???????
?
???????八、查看目前機器中的所有磁盤及分區(qū)情況:
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 這個工具主要是用在Powerpc版本的Linux中,咱們常用X86版本中沒有這個工具;這個只是介紹一下
實例解說 fdisk 使用方法
???????作者:北南南北
來自:LinuxSir.Org
提要:fdisk 是一款功能強大的分區(qū)工具,也是目前在Unix類操作系統(tǒng)中最流行的工具之一;分區(qū)工具老字號;本篇只介紹其最簡單的分區(qū)操作功能;
一、fdisk 的介紹;
fdisk - Partition table manipulator for linux ,譯成中文的意思是磁盤分區(qū)表操作工具;本人譯的不太好,也沒有看中文文檔;其實就是分區(qū)工具;
???????fdsik 能劃分磁盤成為若干個區(qū),同時也能為每個分區(qū)指定分區(qū)的文件系統(tǒng),比如linux 、fat32、 linux 、linux swap 、fat16 以及其實類Unix類操作系統(tǒng)的文件系統(tǒng)等;當然我們用fdisk 對磁盤操作分區(qū)時,并不是一個終點,我們還要對分區(qū)進行格式化所需要的文件系統(tǒng);這樣一個分區(qū)才能使用;這和DOS中的fdisk 是類似的;
???????
二、合理規(guī)劃您的硬盤分區(qū);
在操作分區(qū)之前,我們要明白硬盤分區(qū)一點理論,比如硬盤容量和分區(qū)大小的計算;對一個硬盤如何規(guī)劃分區(qū)等,請參考如下文檔,謝謝;
《合理規(guī)劃您的硬盤分區(qū)》
???????
三、fdisk -l 查看硬盤及分區(qū)信息;
通過《合理規(guī)劃您的硬盤分區(qū)》 ,我們知道主分區(qū)(包括擴展分區(qū))的總個數(shù)不能超過四個;也不能把擴展分區(qū)包圍在主分區(qū)之間;根據(jù)這個原則,我們劃分硬盤分區(qū)就比較容易的多;也能為以后減少不必要的麻煩;
???????
1、通過fdisk -l 查看機器所掛硬盤個數(shù)及分區(qū)情況;
?
??????? [root@localhost beinan]# fdisk -lDisk /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 來操作;以fdisk -l 輸出的硬盤標識為準;
?
???????其中 hda有三個主分區(qū)(包括擴展分區(qū)),分別是主分區(qū) hda1 hda2 和hda3(擴展分區(qū)) ;邏輯分區(qū)是 hda5到hda10;
其中 sda 有兩個主分區(qū)(包括擴展分區(qū)),分別是 hda1 和hda2 (擴展分區(qū));邏輯分區(qū)是 sda5 hda6 ;
硬盤總?cè)萘?#61;主分區(qū)(包括擴展分區(qū))總?cè)萘?br />擴展分區(qū)容量=邏輯分區(qū)總?cè)萘?/p>???????
通過上面的例子,我們可以得知 hda=hda1+hda2+hda3,其中hda3=hda5+hda6+hda7+hda8+hda9+hda10 ... ...
2、關(guān)于fdisk -l 一些數(shù)值的說明;
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes???????
?
???????這個硬盤是80G的,有255個磁面;63個扇區(qū);9729個磁柱;每個 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ǎo)(Boot):表示引導(dǎo)分區(qū),在上面的例子中 hda1 是引導(dǎo)分區(qū);
Start (開始):表示的一個分區(qū)從X cylinder(磁柱)開始;
End (結(jié)束):表示一個分區(qū)到 Y cylinder(磁柱)結(jié)束;
id和System 表示的是一個意思,id看起來不太直觀,我們要在fdisk 一個分區(qū)時,通過指定id來確認分區(qū)類型;比如 7表示的就NTFS 分區(qū);這個在fdisk 中要通過t功能來指定。下面的部份會提到;
Blocks(容量):這是我翻譯的,其實不準確,表示的意思的確是容量的意思,其單位是K;一個分區(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進位算起,如果以操作系統(tǒng)二進制來算,這個分區(qū)容量應(yīng)該更少一些,得出的這個值和我們通過 fdisk -l 看到的 /dev/hda1的值是大體相當?shù)?#xff0c;因為換算方法不一樣,所以也不可能盡可能的精確;再加上分區(qū)時的一點損失之類,有時或大或小是存在的;
???????我們查看分區(qū)大小或者文件的時候,還是用十進制來計算比較直觀;推算辦法是 byte 向前推小數(shù)點三位就是K ,K單位的值向前推小數(shù)點三位就是M,M向前推小數(shù)點三位就是G... ... 一般也差不了多少;這么算就行;
???????
3、估算一個存儲設(shè)備是否被完全劃分;
我們估算一個硬盤是否完全被劃分,我們只要看 fdisk -l 輸出的內(nèi)容中的 cylinders(柱體) 上一個分區(qū)的End 和 下一個分區(qū)的Start是不是一個連續(xù)的數(shù)字,另外要看一下每個硬盤設(shè)備的fdisk -l 的開頭部份,看一下他的 cylinders(柱體)的值;
比如hda設(shè)備,我們看到的是 9729 cylinders ;我們通過 hda的分區(qū)表可以看到上一個分區(qū)的End的值+1 就是下一個分區(qū)的Start 的值;比如 hda2的Start的值是 hda1 的End 的值+1,這證明 hda1 和hda2 中間沒有空白分區(qū),是連續(xù)的,以此類推;在 hda10,我們看到 End 的值是9729 ,而在fdisk -l頭部信息中也有9729 cylinders,證明這個硬盤已經(jīng)完全劃分;
????????
??????? Disk /dev/sda: 1035 MB, 1035730944 bytes256 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 (柱體),有一個主分區(qū)和一個擴展分區(qū)構(gòu)成;在擴展分區(qū)中,我們看到End的值為125,而這個移動硬盤的cylinder也是125,這能說明這個硬盤不可能再添加任何主分區(qū)了;根據(jù)我們上面所說的 sda1 sda2 sda5 sda6 之間未有任何未劃分空間,但sda6 的cylinders (柱體)的End值卻是 76 ,而 sda總的cylinders (柱體)有125個,由此看來sda 在 sda6后面有未劃分區(qū)域;
???????至于sda 有多少未劃分空間,我們算一下就知道了;擴展分區(qū)總?cè)萘渴?806400 K ,大約是 806.400M左右,而邏輯分區(qū) sda5 和sda6 的大小加起來是 400M左右,所以還仍有400M左右未劃分空間,并且只能劃分為鏈邏輯分區(qū);
???????
四、fdisk 對硬盤及分區(qū)的操作,進入fdisk 對硬盤操作階段;
我們可以對硬盤進行分區(qū)操作,前提是您把fdisk -l 弄明白了;通過fdisk -l ,我們能找出機器中所有硬盤個數(shù)及設(shè)備名稱;比如上面的例子,我們會看到兩個設(shè)備一個是/dev/hda ,另一個是/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ū)等動作;
1、fdisk 的說明;
當我們通過 fdisk 設(shè)備,進入相應(yīng)設(shè)備的操作時,會發(fā)現(xiàn)有如下的提示;以 fdisk /dev/sda 設(shè)備為例,以下同;
?
??????? [root@localhost beinan]# fdisk /dev/sdaCommand (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 注:這是刪除一個分區(qū)的動作;
???l list known partition types 注:l是列出分區(qū)類型,以供我們設(shè)置相應(yīng)分區(qū)的類型;
???m print this menu 注:m 是列出幫助信息;
???n add a new partition 注:添加一個分區(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) 注:擴展應(yīng)用,專家功能;???????
?
???????其實我們常用的只有注有中文的,其它的功能我們不常用(呵,主要是我不會用,否則早會賣弄一下了);x擴展功能,也不是常用的;一般的情況下只要懂得 d l m p q t w 就行了;
???????下面以實例操作來詳述,沒有例子沒有辦法就,新手也看不懂;
2、列出當前操作硬盤的分區(qū)情況,用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指令來刪除一個分區(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ū)時要小心,請看好分區(qū)的序號,如果您刪除了擴展分區(qū),擴展分區(qū)之下的邏輯分區(qū)都會刪除;所以操作時一定要小心;如果知道自己操作錯了,請不要驚慌,用q不保存退出;切記切記!!!!在分區(qū)操作錯了之時,千萬不要輸入w保存退出!!!
4、通過fdisk的n指令增加一個分區(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): n 注:增加一個分區(qū);
Command action
???l logical (5 or over) 注:增加邏輯分區(qū),分區(qū)編號要大于5;為什么要大于5,因為已經(jīng)有sda5了;
???p primary partition (1-4) 注:增加一個主分區(qū);編號從 1-4 ;但sda1 和sda2都被占用,所以只能從3開始;
p
Partition number (1-4): 3
No free sectors available 注:失敗中,為什么失敗????????
?
???????注:我試圖增加一個主分區(qū),看來是失敗了,為什么失敗?因為我們看到主分區(qū)+擴展分區(qū)把整個磁盤都用光了,看擴展分區(qū)的End的值,再看一下 p輸出信息中有125 cylinders;最好還是看前面部份;那里有提到;
???????所以我們只能增加邏輯分區(qū)了;
????????
??????? ?Command (m for help): nCommand action
???l logical (5 or over)
???p primary partition (1-4)
l 注:在這里輸入l,就進入劃分邏輯分區(qū)階段了;
First cylinder (51-125, default 51): 注:這個就是分區(qū)的Start 值;這里最好直接按回車,如果您輸入了一個非默認的數(shù)字,會造成空間浪費;
Using default value 51
Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M 注:這個是定義分區(qū)大小的,+200M 就是大小為200M ;當然您也可以根據(jù)p提示的單位cylinder的大小來算,然后來指定 End的數(shù)值。回頭看看是怎么算的;還是用+200M這個辦法來添加,這樣能直觀一點。如果您想添加一個10G左右大小的分區(qū),請輸入 +10000M ;
Command (m for help):???????
5、通過fdisk的t指令指定分區(qū)類型;
Partition number (1-6): 6 注:要改變哪個分區(qū)類型呢?我指定了6,其實也就是sda6
Hex code (type L to list codes):L 注:在這里輸入L,就可以查看分區(qū)類型的id了;
Hex code (type L to list codes): b 注:如果我想讓這個分區(qū)是 W95 FAT32 類型的,通過L查看得知 b是表示的是,所以輸入了b;
Changed system type of partition 6 to b (W95 FAT32) 注:系統(tǒ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、一個添加分區(qū)的例子;
本例中我們會添加兩個200M的主分區(qū),其它為擴展分區(qū),在擴展分區(qū)中我們添加兩個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的起始位置;默認為1,默認就好;
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 注:添加擴展分區(qū);
Partition number (1-4): 3 注:指定為3 ,因為主分區(qū)已經(jīng)分了兩個了,這個也算主分區(qū),從3開始;
First cylinder (51-125, default 51): 注:直接回車;
Using default value 51
Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): 注:直接回車,把其余的所有空間都給擴展分區(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 注:添加一個大小為200M大小的分區(qū);
Command (m for help): n
Command action
???l logical (5 or over)
???p primary partition (1-4)
l 注:添加一個邏輯分區(qū);
First cylinder (76-125, default 76):
Using default value 76
Last cylinder or +size or +sizeM or +sizeK (76-125, default 125): +200M 注:添加一個大小為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保存退出;
???????
五、對分區(qū)進行格式化,以及加載;
先提示一下;用 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 命令,但首先您得建一個掛載目錄;比如 /mnt/sda6 ;
????????
??????? [root@localhost beinan]# mkdir /mnt/sda6[root@localhost beinan]# mount /dev/sda6 /mnt/sda6
[root@localhost 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目錄,然后存取文件了;
???????具體的權(quán)限方法,以及mount 更詳細的用法,在以后我會專門寫一個帖子;在一帖中放下所有的內(nèi)容實在有點為難;
???????后記:
???????在本文寫完后,我還要寫另一個分區(qū)工具parted;在 Fedora 4.0 中cfdisk 被去掉了;所以不想介紹這個工具
???????在Fedora core 4.0 加載NTFS和FAT32分區(qū)詳述
???????作者:北南南北
來自:LinuxSir.Org
提要:本文主要介紹ntfs文件系統(tǒng)分區(qū)及fat32格式分區(qū)的掛載方法:簡單的說就是讓Linux能讀取Windows系統(tǒng)下的分區(qū);
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
正文:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
一、最基本的幾個命令;
1、查看磁盤分區(qū)情況的命令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 -t 文件格式 -o 選項參數(shù) 磁盤分區(qū) 掛載點目錄名???????
這樣說可能新手不太明白,什么是文件格式,什么是掛載點目錄名,我們要把一個分區(qū)加載到Linux,是不是得有個存放在地方?比如我們把/dev/hda1 掛載到/mnt/winc目錄中;首先我們要看是不是winc是否存在于/mnt目建錄中;如果沒有winc,我們必須建一個;當然掛載點目錄名是自己隨便起命名的,最好用英文;
?
???????例子在后面舉了,新手弟兄先知道有這回事就行了;
3、df -lh 磁盤使用情況的命令;這個重要吧;
Filesystem 容量 已用 可用 已用% 掛載點
/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)限;
這個在論壇中,我寫過,有時間整理上來;知道umask=000是任何用戶都能讀寫執(zhí)行的就行了。有些東西慢慢就明白了,多執(zhí)行幾個命令就OK了。
5、內(nèi)核的版本;
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
Password: 在這里輸入您的root密碼,即使輸入了,也不會顯示出來;我們要安裝RPM包,要用到root的超級權(quán)限;
[root@localhost beinan]#???????
二、NTFS文件系統(tǒng)的加載;
1、我們要首先確認系統(tǒng)的內(nèi)核;我們要根據(jù)系統(tǒng)的內(nèi)核版本來下載支持ntfs的內(nèi)核補丁;
?
???????我們在前面已經(jīng)通過fdisk -l 得知/dev/hda1 是NTFS分區(qū);我們?nèi)绾渭虞d它呢?在Fedora core 4.0 中,系統(tǒng)默認是不支持NTFS加載的;我們只能安裝第三方kernel的ntfs插件或者編內(nèi)核來實現(xiàn),相對于編譯內(nèi)核來說,插件是最方便的,也是最簡單的;
????????
??????? [root@localhost beinan]# uname -alinux localhost.localdomain 2.6.11-1.1369_FC4 #1 Thu Jun 2 22:55:56 EDT 2005 i686 i686 i386 GNU/Linux???????
一定要看仔細,是2.6.11-1.1369_FC4,是i686的,沒有帶smp字樣的,smp是支持多處理器的內(nèi)核,如果您用這樣的內(nèi)核,就要下載相應(yīng)版本的smp的;
?
???????我們到哪去下載呢?
???????kernel ntfs 項目在 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
???????在這里選一個鏡像下載:
???????安裝kernel ntfs模塊:
2.判斷哪個分區(qū)是NTFS格式,加載NTFS分區(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 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)在進入NTFS的分區(qū)的加載過程;通過上面的查看,我們知道/dev/hda1是NTFS格式的;
1]我們要建一個掛載點的目錄,比如是在/mnt/目錄下建一個winc的目錄:
[root@localhost beinan]# mkdir /mnt/winc
2]把/dev/hda1 掛載到 /mnt/winc中,這樣我們?nèi)绻榭?dev/hda1磁盤內(nèi)容時,就會在/mnt/winc中找得到;
?
???????注:-t ntfs 說明文件系統(tǒng)的格式是ntfs的;-o是選項 ,選項有什么呢?有nls=utf8 ,意思是Native Language Support(本地語言支持)是utf8,也就是大家常說的語言編碼;Fedora core 4.0 默認的語言編碼就是utf8的,這樣能顯示出中文來;umask=000表示所有的用戶組都可讀可寫,但因為NTFS在Linux中寫入不安全,所以只能讀,不能寫入;如果想寫入,只能自己編內(nèi)核來實現(xiàn);但意義并不是太大;
???????是不是掛載好了呢?
Filesystem 容量 已用 可用 已用% 掛載點
/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???????
看來是掛載好了;我們進入 /mnt/winc就知道是不是有內(nèi)容了;
[root@localhost beinan]# ls???????
3]如何開機自動加載NTFS文件系統(tǒng)的分區(qū);
我們要根據(jù)磁盤的位置,上面我們看到了是/dev/hda1,對不對?所以我在/etc/fstab文件中找加如下的一行;
4]如何將這個磁盤分區(qū)放在GNOME或者KDE的桌面上呢?
在KDE下,只需要點一下鼠標,在桌面的空白處按鼠標右鍵就可以找得到了;不多說了,太簡單;
?
???????在GNOME下也是極簡單的:
???????比如我是以beinan這個用戶登入的系統(tǒng),想在放在 beinan 這個用戶的GNOME桌面上;
三、FAT32文件系統(tǒng)的分區(qū)的加載;
通過fdisk -l ,我們也知道了 /dev/hda2是FAT32格式的;
?
???????Linux對FAT32的支持是可讀可寫的,所以沒有必要再安裝什么模塊之類的;
1.我們要建一個掛載點的目錄,比如是在/mnt/目錄下建一個wind的目錄:
2.掛載 /dev/hda2 到/mnt/wind上
看一下是不是掛載好了?
Filesystem 容量 已用 可用 已用% 掛載點
/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)該進去看看;
[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)際快車???????
中文支持沒有問題;這是我機器中的;
3.如何開機自動加載fat文件系統(tǒng)的分區(qū);
我們要根據(jù)磁盤的位置,上面我們看到了是/dev/hda1,對不對?所以我在/etc/fstab文件中找加如下的一行;
4]如何將這個磁盤分區(qū)放在GNOME或者KDE的桌面上呢?
在KDE下,只需要點一下鼠標,在桌面的空白處按鼠標右鍵就可以找得到了;不多說了,太簡單;
?
???????在GNOME下也是極簡單的:
???????比如我是以beinan這個用戶登入的系統(tǒng),想在放在 beinan 這個用戶的GNOME桌面上;
????????
??????? [beinan@localhost ~]$ ln -s /mnt/wind/ ~beinan/Desktop/wind???????
四、對于文本文件亂碼處理;
比如我們看到有些文本文件內(nèi)容是亂碼,我們可以用gedit 打開,然后另存為utf8格式就OK了;
?
????????
???????后記:雖然寫的詳細,但我不敢保證所有初學(xué)者都能會操作,但我感覺80%初學(xué)者還是按步驟操作不會有問題;
???????正在修訂之中;歡迎提出點意見和建議;謝謝~
??????? ???????????再分享一下我老師大神的人工智能教程吧。零基礎(chǔ)!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們?nèi)斯ぶ悄艿年犖橹衼?#xff01;https://blog.csdn.net/jiangjunshow
總結(jié)
以上是生活随笔為你收集整理的LinuX 硬盘分区细节详谈 【 整理至 LinuxSir BY FreeXploiT 】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有没有在学习IT营2020年新出Go语言
- 下一篇: OC Swift混编-Swift.h F