jasmine214--love

          只有當(dāng)你的內(nèi)心總是充滿快樂(lè)、美好的愿望和寧?kù)o時(shí),你才能擁有強(qiáng)壯的體魄和明朗、快樂(lè)或者寧?kù)o的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          linux 文件系統(tǒng)1

          Posted on 2010-12-30 14:44 幻海藍(lán)夢(mèng) 閱讀(185) 評(píng)論(0)  編輯  收藏 所屬分類: Linux
          作者:北南南北
          來(lái)自:LinuxSir.Org
          摘要: 硬盤和硬盤分區(qū)在Linux都表示為設(shè)備,按我們通俗的說(shuō)法來(lái)說(shuō),就是怎么來(lái)表示或描述硬盤和或硬盤分區(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接口的硬盤的兩種表示方法; 二、關(guān)于SATA和SCSI接口的硬盤的兩種表示方法; 三、usb及1394接口的存儲(chǔ)設(shè)備和軟驅(qū)設(shè)備; 四、關(guān)于存儲(chǔ)設(shè)備的不同的表示方法的應(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ī)器中只有一塊硬盤,無(wú)論我們通過(guò)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通過(guò)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ì)說(shuō)了;
          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)說(shuō)過(guò)了整塊硬盤也有兩種表示方法,一種是/dev/hd[a-z]的,另種方法是hd[0-n]; 一個(gè)硬盤分區(qū)首先要大確認(rèn)在哪個(gè)硬盤,然后再確認(rèn)他所在的位置;做個(gè)比喻,比如我住在XXX賓館YYY號(hào)房間,我僅僅是告訴別人我在XXX賓館不夠的,還 要告訴他YYY房間,這樣來(lái)找我的人才能找到我;所以我們要知道一個(gè)硬盤分區(qū),除了知道/dev/hd[a-z]以外,還要知道他在哪個(gè)位置,也就有前面 所說(shuō)的/dev/hd[a-z]X的說(shuō)法,確認(rèn)了分區(qū)在/dev/hd[a-z]后,還要通過(guò)X來(lái)確認(rèn)具體位置; 本標(biāo)題中說(shuō)的是另外一種表示方法 (hd[0-n],y),hd[0-n]我們知道這是硬盤的表示方法之一,如果不懂,請(qǐng)看看前面的東西吧;那這里的y是什么意思呢?y的值是 /dev/hd[a-z]X中的 X-1 ; 用實(shí)例來(lái)理解吧;
          [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è)硬盤來(lái)說(shuō),無(wú)論在Linux通過(guò)/dev/hda 還是/dev/hdb ,用 hd[0-n]表示方法,都是hd0;所以如果您如果硬盤中列出來(lái)的是;
          [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è)硬盤來(lái)說(shuō),如果通過(guò)fdisk -l 列出來(lái)的是/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硬盤,通過(guò)fdisk -l 出現(xiàn)的是/dev/sd[0-n] ;如果是模擬SCSI設(shè)備的方法來(lái)驅(qū)動(dòng)。那usb 存儲(chǔ)設(shè)備在Linux的另一種表示方法和前面所說(shuō)的SCSI和SATA的相同; 但目前新版本的內(nèi)核中,想拋棄模擬SCSI,我們通過(guò)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,我們通過(guò)fdisk -l 后,出現(xiàn)的也是/dev/sd[0-n],另一種表示方法(sd[a-z],y)的理解請(qǐng)參照前面所說(shuō)的; 1394接口的存儲(chǔ)設(shè)備在Linux表現(xiàn)極好,USB存儲(chǔ)如果相對(duì)1394接口的存儲(chǔ)表現(xiàn)來(lái)說(shuō),應(yīng)該不值不提,建議大家購(gòu)買1394接口的存儲(chǔ)設(shè)備; 軟驅(qū)在Linux中,是/dev/fd0設(shè)備這是一般情況,另一種表示為fd0 ; CDROM 或DVDROM ,以及COMBO ,一般的情況下是/dev/hdc ;看下面的例子,無(wú)論是 /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(shuō)的,硬盤的分區(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)中;所以過(guò)程應(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í),要通過(guò)指定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的命令行模式中要通過(guò)root (hd[0-n],y)來(lái)指定;這里的root (hd[0-n],y),在GRUB中就/boot所位于的分區(qū);不要搞錯(cuò)了,有時(shí)/boot和Linux的根/并不是處于同一個(gè)分區(qū)的,就看您安裝 Linux時(shí)怎么安裝的了;而我們前面所說(shuō)的root=/dev/hd[a-z]X來(lái)指定的是Linux 根/所位于的分區(qū);雖然有時(shí)/boot和/同處一個(gè)分區(qū),但兩種表示方法在GRUB中各有用途;明白了吧; 比如/boot位于同一個(gè)硬盤分區(qū),就可以用類似下的方法來(lái)把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á)方法,可能說(shuō)的有點(diǎn)復(fù)雜化了;用pandonny兄的話來(lái)說(shuō):“本來(lái)是理論性的概念的東西,寫得太理論性 的東西新手反而看不懂,還是描述性的往往更容易被新手理解”。 這篇文檔主要是把抽象的概念具體化,我不知道初學(xué)的弟兄是否能看得懂,至少我已經(jīng)盡全力了,對(duì)我來(lái)說(shuō)已經(jīng)是“北南技窮”。關(guān)于理論文面的文檔就是翻譯過(guò)來(lái) 也是極為難翻譯的,更不要說(shuō)簡(jiǎn)單的描述了;初學(xué)Linux的弟兄,慢慢實(shí)踐著來(lái)吧;實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),相信這一真理絕對(duì)沒錯(cuò)!!千萬(wàn)不要把我所說(shuō) 過(guò)的是真理,真理在你手中。。。。。。因?yàn)槟菍?shí)踐者; 本來(lái)寫GRUB入門文檔了,結(jié)果發(fā)現(xiàn)不寫一寫存儲(chǔ)設(shè)備的表示方法不太行,所以被迫寫了這篇文章,雖然勉強(qiáng),但還是寫出來(lái)了;
          六、參考文檔;

          《GNU GRUB 手冊(cè)和FAQ》
          七、相關(guān)文檔;
          《合理規(guī)劃您的硬盤分區(qū)》
          《系統(tǒng)引導(dǎo)過(guò)程及硬盤分區(qū)結(jié)構(gòu)論述》
          《Linux 查看磁盤分區(qū)、文件系統(tǒng)、使用情況的命令和相關(guān)工具介紹》
          《實(shí)例解說(shuō) fdisk 使用方法》
          《在Fedora core 4.0 加載NTFS和FAT32分區(qū)詳述》
          《Fedora Core 4.0 HAL配置即插即用移動(dòng)存儲(chǔ)(USB及1394)的實(shí)踐》
          原文; http://www.linuxsir.org/main/?q=node/127
          主站蜘蛛池模板: 阳信县| 湘西| 水城县| 应用必备| 时尚| 平泉县| 衡水市| 云和县| 桑植县| 荣昌县| 宁晋县| 周宁县| 宁乡县| 永善县| 四川省| 宁明县| 文山县| 邵阳县| 上高县| 沭阳县| 万全县| 拉萨市| 榕江县| 宁都县| 上饶市| 哈巴河县| 长武县| 凯里市| 泰兴市| 南川市| 和顺县| 邛崃市| 布尔津县| 临安市| 通江县| 文山县| 陵水| 河西区| 阜平县| 依兰县| 哈尔滨市|