歡迎您光臨本站 註冊首頁

硬碟類型和Linux分區 .

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

硬碟類型和Linux分區 .

硬碟類型和Linux分區 .









真怪自己知識不夠啊,Linux系統倒是安裝過幾次了,但是一些知識還是不懂……



比如說,/dev/hda,/dev/hdb,/dev/sda,這個hda和sda是什麼呢?它們有什麼區別?



嗯,百度一下,查到了IDE,SATA,SCSI。這是什麼東西啊?

是硬碟介面名,代指不同類型的硬碟,我的硬碟是「希捷7200轉SATA硬碟」,中關村OL上的硬碟分類為:SATA3.0,SATA2.0,SATA1.0,PATA,SAS。目前最流行的當然就是SATA3.0硬碟了,最貴最高檔的是企業專用SAS硬碟。



說明:

IDE,SATA,SCSI是硬碟的三個大類,技術上有較大區別。其中SCSI最先進,當然價格也更貴。

ATA、Ultra ATA、DMA、Ultra DMA等介面都屬於IDE硬碟,PATA估計就是Ultra ATA了。

SAS即串列連接SCSI,是新一代的SCSI技術。



好了,明白硬碟類型了,接下來分析/dev/hda和/dev/sda。

hda、sda其實是不同設備的名稱,詳細情況見下表:


裝置
裝置在Linux內的文件名

IDE硬碟機
/dev/hd

SCSI/SATA/USB硬碟機
/dev/sd

USB快閃碟
/dev/sd(與SATA不同)

軟盤驅動器
/dev/fd

印表機
25針: /dev/lp

USB: /dev/usb/lp

滑鼠
PS2: /dev/psaux

USB: /dev/usb/mouse

當前CDROM/DVDROM
/dev/cdrom

當前的滑鼠
/dev/mouse






其中hda、hdb分別代表第一個IDE、第二個IDE。假如你電腦上插有2個IDE硬碟,就會出現hda、hdb嗎?不一定,因為貌似IDE硬碟默認有兩個部分,Master和Slave,即主分區和擴展分區,而且a、b是根據IDE介面插槽順序來分的。這樣的話,第一IDE插槽主分區為hda,擴展分區為hdb,第二IDE插槽主分區為hdc,擴展分區為hdd。但是SATA硬碟好像沒有擴展分區,而且Linux識別SATA等類型裝置的順序不是按插槽順序來的,是按照設備被偵測到的順序來定的,比如SATA的第1、5插槽分別插有硬碟,電腦上還插有一個USB,那麼啟動Linux的時候,先後偵測到SATA的第1、5插槽的硬碟和USB設備,那麼分配的名稱就分別是sda,sdb,sdc。



那麼sda1、sda2又分別代表什麼呢?代表分區(Partition),比如

     P1:/dev/hda1

 P2:/dev/hda2

 L1:/dev/hda5

 L2:/dev/hda6

 L3:/dev/hda7

 L4:/dev/hda8

 L5:/dev/hda9

為什麼沒有hda3、4呢?因為P1~4保存給了Primary和Extended分區。一個硬碟的結構如下:

MBR|主分區1|主分區2|主分區3|主分區4(擴展分區)|

其中擴展分區可以分為: |邏輯分區1|邏輯分區2|……|邏輯分區n|



所以說上面的P1、2指明系統有兩個主分區,L1~5代表有5個邏輯分區。



其中MBR(主引導記錄),它有512位元組,貌似有些玄機(和啟動有關),不過多研究了。



至於Linux的實際分區,本文不作過多研究,我只知道,Linux的分區很有講究,比如有基於FTP伺服器的分區方案,有基於文件伺服器的分區方案等等。我們知道Linux系統多被企業用來作伺服器,其中包括各種各樣的伺服器。比如,我所知道的HTTP服務(通常是Apache和Tomcat),文件服務(常用的是NFS伺服器,例如一個Team,各個客戶端都可以掛載主機的一個目錄,方便共享文件),FTP服務(這個不解釋,最常用的是VSFTP,Pure-FTP也用得比較多)。



菜鳥的分區方案是:

swap分區,2048MB=2GB

/boot分區,200MB

/(主分區),30GB

或者

swap分區,2GB

/home分區,20GB

/(主分區),10GB





下面給出一個較好的分區方案(自用WIN7+REDHAT9.0雙系統)

swap大小為3GB

/boot大小為200MB

/大小為2GB

/usr大小為15GB

/home大小為20GB

/var大小為5GB

將/usr,/home,/var獨立出來分區,便於管理,一般企業級的伺服器都會把這幾個獨立出來。當然這個方案並不是最優的方案。有些情況會把/tmp也獨立出來,或者把/tmp和/root都刪掉,在/var下重新做鏈接。



至於格式嘛,ext3還是ext4?我用的ext3,Ubuntu工作站都是用的ext3而非ext4我想還是有一定原因吧,而且我的Linux本來就是老版本的REDHAT9.0。



PS:分區的時候,遇到(hd0,4), (hd1,0)什麼的,又把我搞糊塗了……

GRUB是什麼?怎麼區分各個分區的編號? (hd0,1)還是(hd1,0)?



GRUB是一個引導程序,它被安裝在MBR(Master Boot Record即「主引導記錄」)用於在啟動時告訴電腦該啟動哪一個OS(Operation System即「操作系統」),包括windows在內,每一個OS都需要引導才能啟動,windows的引導程序是MS的ntload(NT內核的系統,如XP,Vista),安裝XP 時會自動安裝(不需要也不會詢問你是否願意),它只會尋找已被激活的主分區並把控制權交給這個分區的引導區(不是MBR)。而GRUB就要強大得多了,它不但可以完成ntload的動作(即引導windows),而且可以引導linux、Mac OS,solaris,free BSD等等,而且可以在出錯時報錯,並提供簡單的用戶交互(命令行)。當然由於都要安裝到MBR,所以GRUB不能和ntload共存於同一塊硬碟(grub4dos除外)。

GRUB會將BIOS檢測到的所有硬碟編號,從0開始計數,0,1,2,3……,所以就是hd0,hd1,hd2,hd3……,hd就是hard disk即硬碟(SATA和IDE硬碟都是hd)。



那麼到底那一塊硬碟對應hdx呢?
首先,如果你是單硬碟的話,不用想了,只會是hd0。那麼如果有兩塊或更多的硬碟呢?你可以這樣:在開機檢測出現BIOS畫面時,等到全部硬碟的數據出現 時,立即按下「Pause」鍵(我的位於「Page Up」鍵的上方),這時啟動過程會暫停,然後仔細看看吧。比如我有四塊硬碟————兩塊IDE的,分別是40G、160G,還有兩塊SATA的,分別是 80G和320G。BIOS檢測順序是這樣:IDE40,IDE160,SATA320,SATA80,所以GRUB表示為:IDE40(hd0),IDE160(hd1),SATA320(hd2),SATA80(hd3),就這樣啦,趕快記下吧!
注意:這裡有一個變數:啟動盤順序。
還是上面的例子,因為我的GRUB安裝在SATA320的MBR,並且平時就是用這塊硬碟啟動電腦,所以這時候SATA320中的GRUB認為我的硬碟應該這樣編號:SATA320(hd0),IDE40(hd1),IDE160(hd2),SATA80(hd3)。
呵呵,明白了吧!GRUB編號的原則是這樣的:
1.多快硬碟的順序完全照抄BIOS檢測結果;
2.啟動盤一定是hd0(不管BIOS如何),其他硬碟依次按BIOS檢測結果重排。
3.不管IDE還是SATA,一律認作IDE硬碟!即不使用類似(sd0,0)這樣的編號,這個和linux的方式不同喔!



大家知道同一塊硬碟最多只能共存四個主分區,所以對於hd0硬碟,依次是(hd0,0)、(hd0,1)、(hd0,2)、(hd0,3),這是只分出四個主分區的情況,這個編號永遠固定不變;不過這樣的話,你就無法使用更多的分區了,所以通常應該犧牲掉一個主分區(通常是最後一個)把它轉換為擴展分區(extend),以便在其中再細分出更多的邏輯分區(logic)。邏輯分區一律從(hd0,4)開始編號(因為0~3被主分區佔據了),依次為(hd0,4)、(hd0,5)、(hd0,6)、(hd0,7)……
ok,對於大多數人來說,兩個以上的主分區根本沒用,所以慣常的做法是————一個主分區、一個擴展分區(包含若干個邏輯分區)。所以,慣常會使用在同一塊硬碟上的編號是:(hd0,0)、(hd0,4)、(hd0,5)、(hd0,6)……。以此類推,第二硬碟是 (hd1,0)、(hd1,4)、(hd1,5)、(hd1,6)……。



而linux的編號方法又和GRUB不同。是嚴格按照BIOS檢測結果,第一硬碟是sda,第二硬碟是sdb,第三硬碟是sdc……,而不管哪個是啟動盤。具體來說,我用第三硬碟啟動的系統,GRUB認為它是(hd0),而linux依然認為它是sdc,明白?

但貌似,Ubuntu自8.04起,所有硬碟都編號為「sdx」,即不管IDE還是SATA,一律認作SCIS硬碟。

[火星人 ] 硬碟類型和Linux分區 .已經有419次圍觀

http://coctec.com/docs/service/show-post-1659.html