电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

UNIX硬盤分區簡介

瀏覽:125日期:2024-07-04 11:05:35
寫這份文檔的初衷是在網絡上和一些朋友聊天的時候,常常會被問到這個問題,回答了很多次。為了一勞永逸的解決這個問題,決定寫一份文檔,方便以后再次被問到的時候copy,呵呵。同時,也是為了幫助自己不斷鞏固這些知識,算是一份粗糙的筆記吧。 “Unix硬盤分區簡介”這個標題有些大,本來只是為了介紹一下Solaris和Linux的分區,但是也希望對其他UNIX熟悉的朋友們分享你們的知識,將你們所熟悉的UNIX,例如FreeBSD,ScoUNIX,HpUNIX等的硬盤分區知識,share出來。如果發現了文章之中的錯誤,請聯系我(E-Mail:cqwlyh@263.net;MSN:cqwlyh@263.net),如果對文章進行了修改,請留下您的名字和聯系方式。 ok,閑話少說,讓我們進入正題吧: 1.Solaris硬盤分區簡介 Solaris下,一個磁盤包含8個分區,標記為0-7。此信息可以通過format命令,然后選擇一個硬盤來看到,例如,在我自己的系統中(Solaris 9,Ultra 60),顯示出來的信息如下: # format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c0t0d0 <SUN18G cyl 7506 alt 2 hd 19 sec 248> /pci@1f,4000/scsi@3/sd@0,0 Specify disk (enter its number): 0 selecting c0t0d0 [disk formatted] Warning: Current Disk has mounted partitions. FORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk repair - repair a defective sector label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels save - save new disk/partition definitions inquiry - show vendor, product and revision volname - set 8-character volume name !<cmd> - execute <cmd>, then return quit format> p PARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table print - display the current table label - write partition map and label to the disk !<cmd> - execute <cmd>, then return quit partition> 不要看到內容這么多,就被嚇住了,其實,format命令之后0. c0t0d0 <SUN18G cyl 7506 alt 2 hd 19 sec 248>/pci@1f,4000/scsi@3/sd@0,0所顯示出來的含義很簡單,0. c0t0d0就代表這臺Ultra 60里面只裝了一個硬盤(至于c0t0d0的具體含義,稍后會介紹),<SUN18G cyl 7506 alt 2 hd 19 sec 248>代表的是這個硬盤的大小和柱面信息,/pci@1f,4000/scsi@3/sd@0,0所代表的,就是這個硬盤的實際物理地址。這些信息看起來很復雜,其實一般都只需要看看format命令抓出來的硬盤數量,是不是我們裝在系統上的數量,例如你裝了兩個硬盤,但是這里只有一個硬盤的信息,就需要認真面對了。 FORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk repair - repair a defective sector label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels save - save new disk/partition definitions inquiry - show vendor, product and revision volname - set 8-character volume name !<cmd> - execute <cmd>, then return quit format> p 這里所列出來的,是可以使用的命令,比如我在最下面format>,就是用了p這個命令(慢點,上面沒有p這個命令啊?其實,這里p就是partition的簡寫),然后,列出了以下內容: PARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table print - display the current table label - write partition map and label to the disk !<cmd> - execute <cmd>, then return quit partition> OK,到這里,我們的目的也達到了,這些信息應該很清楚的證明了:Solaris下,一個磁盤包含8個分區,標記為0-7。后面的仍然是一些可以用到的命令,這些命令的具體含義,大家可以看命令后面的英文介紹,至于怎么使用,以后再說。下面我們將進入今天的重點。 向一塊硬盤寫入數據之前,首先需要將其分區和格式化,這個過程一般可以分為3個步驟: 1. 物理格式化,也就是通常所說的低級格式化(Low-Level Formatting,LLF); 2. 分區; 3. 邏輯格式化,也就是通常所說的高級格式化(High-Level Formatting,HLF) 低級格式化的時候,硬盤被分成若干個磁道,這些磁道又被分成若干個扇區,每個扇區填充了隨機數據。幾乎所有的硬盤在出廠前都已經被低級格式化過,所以,用戶只要對硬盤進行下面兩個步驟(分區和邏輯格式化)就可以了。 分區的動作將硬盤分成幾個部分,成為分區或者是分片(注意:前面的“分區”是動詞,后面的是名詞哦)。每個分區/分片由若干個柱面組成。絕大多數下,Solaris中的一個硬盤分區對應一個文件系統。一個分區不能包含多個文件系統;同樣,一個文件系統也不能跨越多個分區。Solaris中,對硬盤進行分區,就是使用我們開始的時候使用過的format命令。 當Solaris進行高級格式化的時候,將每個分區分成許多柱面組,每個柱面組包括了幾個連續的柱面。文件系統在這些柱面組中建立文件和目錄,并盡量將同一個文件的數據保存在同一個柱面組中。這樣的機制能夠保證磁頭讀取數據的時候移動最少,從而加快數據的讀取速度。Solaris中使用newfs命令來實現高級格式化,默認的文件系統是UNIX文件系統(UFS:Unix File System),它使用下列類型的塊: 1. 引導塊:存儲系統啟動時所需的信息 2. 超級塊:存儲文件系統信息 3. 索引節點(i節點):存儲文件系統中的單個文件信息 4. 存儲塊/數據塊:存儲文件數據 下面來詳細介紹一下這幾種類型的塊。 引導塊: 引導塊存儲系統啟動時所需的信息。引導塊總是位于硬盤的第一個柱面組,占用分區的前8KB。 超級塊: 超級塊存儲文件系統信息,它包含了下列信息: 1. 文件系統中總塊數(文件系統大小) 2. 文件系統中數據塊的數目 3. 索引節點的數目 4. 柱面組的數目 5. 塊的大小 6. 磁盤碎片的大小 7. 空閑塊的個數 8. 空閑的索引節點的個數 超級塊對文件系統及其重要,所以Solairs系統采用多個備份來確保它的安全。偶爾,當沒有正常關閉系統或硬盤出現故障的時候,會造成默認超級塊不能正確讀取或者是和其備份的超級塊不一致。這時,就需要進行修復工作。通常在重新啟動系統的時候,系統會調用fsck命令來自動完成。當fsck發現默認的超級塊已經損壞而且無法自動修復的時候,會提示用戶手動進行修復。 手動進行修復的時候,可以根據以下幾個步驟進行: 1. 以單用戶的身份進入系統,例如在PROM的模式下(即ok狀態下)用命令boot -s可進入單用戶模式,或者在系統中sync;sync;sync;init 0也可進入單用戶模式(至于什么是單用戶模式,以后會詳細介紹) 2. 如果損壞的文件已經安裝到文件樹中,可以進入另一個目錄,然后將損壞的文件系統卸載,例如: #cd / #umount /var 3. 使用newfs -N命令顯示超級塊的值,此命令會列出備用的超級塊在文件系統中的位置: # newfs -N /dev/dsk/c0t0d0s1 /dev/rdsk/c0t0d0s1: 961248 sectors in 204 cylinders of 19 tracks, 248 sectors 469.4MB in 13 cyl groups (16 c/g, 36.81MB/g, 17664 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 75680, 151328, 226976, 302624, 378272, 453920, 529568, 605216, 680864, 756512, 832160, 907808, 4. 從newfs -N命令列出的備用超級塊中選擇一個作為fsck命令的一個選項進行修復: #fsck -F ufs -o b=453920 /dev/rdsk/c0t0d0s1 索引節點 索引節點包含了一個文件除去文件名以外的所有信息。一個索引節點占用128字節的磁盤空間,它包含了下列信息: 1. 文件類型:普通文件、目錄、塊設備文件、字符設備文件、鏈接等 2. 文件權限:讀、寫、執行權限的組合 3. 文件的硬鏈接數 4. 文件所有者的用戶ID 5. 文件所屬的組ID 6. 文件大小(字節數) 7. 一個包含15個磁盤塊地址的數組 8. 文件最近的訪問日期和時間 9. 文件最后一次修改的日期和時間 10. 文件創建的日期和時間 硬盤上的每個文件,都有一個描述它的信息的索引節點。文件系統創建的時候,一定數目的索引節點在硬盤柱面組中被同時創建。有時候,這些索引節點或許會不夠用,例如當一個程序產生大量小文件的時候,此時文件系統就需要增加索引節點。同樣,如果我們事先知道此文件系統只用來存放少數大文件,我們就可以通過減少索引節點的數目來達到節省磁盤空間的目的——畢竟每個索引節點占用128字節。創建文件系統的時候,可以使用newfs命令的-i選項來增加或者減少索引節點的數目。/usr/ucb目錄下的df命令可以查看文件系統中所引節點的狀況。例如: # usr/ucb/df -i Filesystem iused ifree %iused Mounted on /dev/dsk/c0t0d0s0 131672 1929384 6% / 注意:文件系統一旦創建,就無法改變它的索引節點數目,因此,當索引節點不夠用的時候,首先應當備份此文件系統數據,然后創建一個包含更多索引節點的新的文件系統,然后將備份的數據恢復到新的文件系統就可以了。 存儲塊/數據塊 存儲塊,也叫做數據塊,它占用了文件系統的其他所有空間。這些塊包含了存放在磁盤上的數據文件。每個存儲塊的大小在創建文件系統的時候被確定。對一個普通文件來說,存儲塊存放了文件的內容,對一個目錄來說,存儲塊中存放了此目錄中所有文件的索引節點號和文件名的信息。 好了,上面說了這么多內容,是不是看累了啊?反正我的手早酸了,讓我去喝杯茶,然后繼續剩下的內容:磁盤命名。 磁盤命名 這里主要是詳細解釋我們最開始使用format命令的時候,看到的c0t0d0這個表示的詳細含義。 在Solaris系統中用設備名來代表磁盤。磁盤設備名是類似cXtXdX格式的一系列字母和數字,比如我們看到的c0t0d0。設備名中的字母(c,t,d)都是一樣的,但X代表的數字表示特定的磁盤或者系統。例如c0t0d0表示0號控制器,0號磁盤,0號LUN,這通常指代系統中的第一個硬盤,往往也是系統的啟動磁盤(boot disk)。 Sun使用下列命名方式定義邏輯設備名: /dev/[r]dsk/cXtXdXsX c:邏輯控制器號(邏輯控制器) t:物理總線目標號 d:磁盤或邏輯單元號(LUN) s:分區號 cX : X指磁盤控制器。當SUN系統搜集安裝在系統中的磁盤控制器信息時,它給每個磁盤控制器一個數值,數值取決于系統監測控制器的先后順序。第一個被檢測到的控制器分配的數值是0,第二個控制器是1,依次類推。對IDE系統來說,第一個IDE通道為0,第二個(如果存在的話)通道為1。 tX : X指磁盤的目標號。這個數字有時候被稱為SCSI標識符,磁盤控制器上的每一個磁盤都有一個唯一的目標號。控制器通過這個目標號可以對每個磁盤獨立尋址。對IDE磁盤而言,主盤的目標號是0,從盤的目標號是1。 dX : X指磁盤的邏輯單元號(LUN)。在有些磁盤陣列中,LUN被用來區分系統中的各個磁盤。一個陣列可以用一個目標號來表示一組磁盤,然后用LUN來表示這個磁盤組中的單個磁盤。這種方式被廣泛應用于SCSI磁盤陣列和光盤轉換設備中。對單個磁盤或IDE磁盤,這個數字總是設定為0。 sX : X指磁盤上的分區號。它和磁盤的分區對應。就如我們前面所說的“Solaris下,一個磁盤包含8個分區,標記為0-7”,因為這里X的數值只能是0——7。 以上的內容,就可以詳細說明出c0t0d0s0的含義了。 作者 : 陳求文 MSN : cqwlyh@263.net E-Mail : cqwlyh@263.net Date : 2004-8-12 19:33 2.Linux硬盤分區簡介 磁盤命名 相對Solaris來說,Linux磁盤命名的概念就簡單多了,而且和我們平常使用的Windows系統多少有些瓜葛。和Solaris一樣,在Linux中,每個硬件設備都有一個稱為設備名稱的特別名字,例如,接在IDE1的第一個硬盤(master主硬盤),其設備名稱為/dev/hda,也就是說我們可以用“/dev/hda”來代表此硬盤,下面的信息相信大家看了以后會有“一目了然”的感覺: 磁盤 設備名稱 IDE1的第1個硬盤(master) /dev/hda IDE1的第2個硬盤(slave) /dev/hdb IDE2的第1個硬盤(master) /dev/hdc IDE2的第2個硬盤(slave) /dev/hdd SCSI的第1個硬盤 /dev/sda SCSI的第2個硬盤 /dev/sdb 這么看來,是不是比Solaris的硬盤命名容易理解多了? 分區命名 分區的目的,是為了讓數據能夠分類存放。每一個分割出來的區域,就稱為一個“分區”(partition),在Solaris中,也常常用“slice”(片)的概念,例如我們前面所講過的c0t0d0s0中的s0,就是指代第一個分區。在Linux中,分區的概念和Windows得更加接近,硬盤分區按照功能的不同,可以分為以下幾類: 1. 主分區(primary) 2. 擴展分區(extended) 3. 邏輯分區(logical) 主分區(primary) 通常在劃分硬盤的第1個分區時,會指定為主分區。但是和Windows不同的是,windows中一個硬盤最多只允許有1個主分區,而Linux最多可以讓用戶創建4個主分區。 擴展分區(extended) 由于Linux中一個硬盤最多只允許有4個主分區,如果想要創建更多的分區,怎么辦?于是就有了擴展分區的概念。用戶可以創建一個擴展分區,然后在擴展分區上創建多個邏輯分區。從理論上來說,邏輯分區沒有數量上的限制。 需要注意的是,創建擴展分區的時候,會占用一個主分區的位置,因此,如果創建了擴展分區,一個硬盤上便最多只能創建3個主分區和一個擴展分區。而且,擴展分區不是用來存放數據的,它的主要功能是為了創建邏輯分區。這個概念,和Windows可說是一模一樣。 邏輯分區(logical) 邏輯分區不能夠直接創建,它必須依附在擴展分區下,容量受到擴展分區大小的限制。通常邏輯分區是存放文件和數據的地方。 有了磁盤命名和分區命名的概念,理解諸如/dev/hda1之類的分區名稱,應該就不是難事了。具體的,可以看下面的表示: 分區 分區名稱 IDE1的第1個硬盤(master)的第1個主分區 /dev/hda1 IDE1的第1個硬盤(master)的第2個主分區 /dev/hda2 IDE1的第1個硬盤(master)的第3個主分區 /dev/hda3 IDE1的第1個硬盤(master)的第4個主分區 /dev/hda4 IDE1的第1個硬盤(master)的第1個邏輯分區 /dev/hda5 IDE1的第1個硬盤(master)的第2個邏輯分區 /dev/hda6 ...... ...... IDE1的第2個硬盤(slave)的第1個主分區 /dev/hdb1 IDE1的第2個硬盤(slave)的第2個主分區 /dev/hdb2 ...... ...... SCSI的第1個硬盤的第1個主分區 /dev/sda1 SCSI的第1個硬盤的第2個主分區 /dev/sda2 ...... ...... 作者 : 陳求文 MSN : cqwlyh@263.net E-Mail : cqwlyh@263.net Date : 2004-8-13 11:00 雖然手很累,但是看到自己的“成果”,真是開心啊!
標簽: Unix系統
主站蜘蛛池模板: 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 代做标书-代写标书-专业标书文件编辑-「深圳卓越创兴公司」 | 自进式锚杆-自钻式中空注浆锚杆-洛阳恒诺锚固锚杆生产厂家 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 珠光砂保温板-一体化保温板-有釉面发泡陶瓷保温板-杭州一体化建筑材料 | PTFE接头|聚四氟乙烯螺丝|阀门|薄膜|消解罐|聚四氟乙烯球-嘉兴市方圆氟塑制品有限公司 | 浙江美尔凯特智能厨卫股份有限公司 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 私人别墅家庭影院系统_家庭影院音响_家庭影院装修设计公司-邦牛影音 | 防爆电机_防爆电机型号_河南省南洋防爆电机有限公司 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 复合肥,化肥厂,复合肥批发,化肥代理,复合肥品牌-红四方 | 深圳富泰鑫五金_五金冲压件加工_五金配件加工_精密零件加工厂 | 超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司 | Type-c防水母座|贴片母座|耳机接口|Type-c插座-深圳市步步精科技有限公司 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 四探针电阻率测试仪-振实密度仪-粉末流动性测定仪-宁波瑞柯微智能 | 桁架楼承板-钢筋桁架楼承板-江苏众力达钢筋楼承板厂 | 悬浮拼装地板_篮球场木地板翻新_运动木地板价格-上海越禾运动地板厂家 | 河南包装袋厂家_河南真空袋批发价格_河南服装袋定制-恒源达包装制品 | 锯边机,自动锯边机,双面涂胶机-建业顺达机械有限公司 | 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 | 过跨车_过跨电瓶车_过跨转运车_横移电动平车_厂区转运车_无轨转运车 | 北京开源多邦科技发展有限公司官网 | 【灵硕展览集团】展台展会设计_展览会展台搭建_展览展示设计一站式服务公司 | 玉米深加工设备-玉米深加工机械-新型玉米工机械生产厂家-河南粮院机械制造有限公司 | 纸箱抗压机,拉力机,脂肪测定仪,定氮仪-山东德瑞克仪器有限公司 | 全自动定氮仪-半自动凯氏定氮仪厂家-祎鸿仪器 | 合肥升降机-合肥升降货梯-安徽升降平台「厂家直销」-安徽鼎升自动化科技有限公司 | Q361F全焊接球阀,200X减压稳压阀,ZJHP气动单座调节阀-上海戎钛 | 浇注料-高铝砖耐火砖-郑州凯瑞得窑炉耐火材料有限公司 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 | 西门子代理商_西门子变频器总代理-翰粤百科 | 哈尔滨京科脑康神经内科医院-哈尔滨治疗头痛医院-哈尔滨治疗癫痫康复医院 | 蚂蚁分类信息系统 - PHP同城分类信息系统 - MayiCMS | 气动球阀_衬氟蝶阀_调节阀_电动截止阀_上海沃托阀门有限公司 | 桥架-槽式电缆桥架-镀锌桥架-托盘式桥架 - 上海亮族电缆桥架制造有限公司 | 脑钠肽-白介素4|白介素8试剂盒-研域(上海)化学试剂有限公司 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 |