系統管理員
要求:
1.瞭解硬盤的組織結構
2.掌握linux的分區特點及各目錄的作用
安裝ubuntu13.04麒麟版,瞭解磁盤分區和目錄結構。(ubuntu服務不收費,red hat服務收費)
安裝包分類:
Dbd(ubuntu)
Slack ware
Rpm(red hat)
硬盤分區的文件名(“所有”設備都用文 件表示)表示:
如:/dev/hda0
Hd:IDE
Sd:STAT/SCSI
Ed:ESDI
Xd:XT
疑問:FAT16最大支持2G?
分區大小 FAT16簇大小
16MB-127MB 2KB
128MB-255MB 4KB
256MB-511MB 8KB
512MB-1023MB16KB
1024MB-2047MB 32KB
FAT16文件系統有兩個最大的缺點:
(1)磁盤分區最大隻能到2GB。當前只要你添購計算機的話,想必其中的硬盤大小必定至少有2GB,而3.2GB、4.3GB以上的硬盤比比皆是,且物美價廉。FAT16文件系統已不能適應當前這種大容量的硬盤,必須被迫分區成幾個磁盤空間。而分區磁盤的大小又牽扯出簇的問題來,可謂影響頗大。
(2)使用簇的大小不恰當。試想,如果一個只有1KB大小的文件放置在一個1000MB的磁盤分區中,它所佔的空間並不是1KB,而是16KB,足足浪費了15KB!當前流行的HTML文件,其大小几乎多爲1KB、2KB,而製作一個網站往往用到數十個HTML文件。如果你的硬盤中有100個這種小文件的話,你浪費的磁盤空間可從700KB(511MB的分區),到3.1MB(2047MB的分區)。
疑問:主分區不能超過四個
Boot Sector也就是硬盤的第一個扇區,它由MBR(Master Boot Record), DPT(Disk Partition Table) 和 Boot Record ID三部分組成。 MBR又稱爲主引導記錄,佔用Boot Sector的前446個字節(0~0x1BD),存放系統主引導程序(它負責從活動分區中裝載並且運行系統引導程序)。 DPT即主分區表佔用64個字節(0x1BE~0x1FD),記錄磁盤的基本分區信息。主分區表分爲四個分區項,每項16個字節,分別記錄每個主分區的信息(因此最多可以有四個主分區)。 Boot Record ID即引導區標記佔用兩個字節(0x1FE~0x1FF),對於合法引導區,它等於0xaa55,這是判別引導區是否合法的標誌)。
備註:
不同系統,不同分區方案,數量也有不同的。
Linux:
主分區最多4個
邏輯分區:
SCSI 最多 16 個
IDE 最多 63 個
傳統的分區方案(稱爲MBR分區方案)是將分區信息保存到磁盤的第一個扇區(MBR扇區)中的64個字節中,每個分區項佔用16個字節,這16個字節中存有活動狀態標誌、文件系統標識、起止柱面號、磁頭號、扇區號、隱含扇區數目(4個字節)、分區總扇區數目(4個字節)等內容。由於MBR扇區只有64個字節用於分區表,所以只能記錄4個分區的信息。
後來爲了支持更多的分區,引入了擴展分區及邏輯分區的概念。但每個分區項仍用16個字節存儲。
硬盤的分區由主分區、擴展分區和邏輯分區組成.主分區在前,擴展分區在後,然後在擴展分區中劃分邏輯分區;主分區的個數 + 擴展分區個數要控制在4個之內,一般這樣:
[主|分區1] [主|分區2] [主|分區3] [擴展分區]
|
[邏輯|分區5] [邏輯|分區6] [邏輯|分區7] [邏輯|分區] ... ...
另外MBR分區方案無法支持超過2TB容量的磁盤。因爲這一方案用4個字節存儲分區的總扇區數,最大能表示2的32次方的扇區個數,按每扇區512字節計算,每個分區最大不能超過2TB。磁盤容量超過2TB以後,分區的起始位置也就無法表示了。
GUID分區表(簡稱GPT。使用GUID分區表的磁盤稱爲GPT磁盤)是源自EFI標準的一種較新的磁盤分區表結構的標準。與目前普遍使用的主引導記錄(MBR)分區方案相比,GPT提供了更加靈活的磁盤分區機制。
每個磁盤的分區個數Windows系統最多隻劃分128個分區。
扇區,磁道:
硬盤的DOS管理結構
1.磁道,扇區,柱面和磁頭數
硬盤最基本的組成部分是由堅硬金屬材料製成的塗以磁性介質的盤片,不同容量硬盤的盤片數不等。每個盤片有兩面,都可記錄信息。[磁盤的每一面被分爲很多條磁道,即表面上的一些同心圓,越接近中心,圓就越小。每一個磁道又按512個字節爲單位劃分爲等分,叫做扇區,]每個扇區可存儲128×2的N次方(N=0.1.2.3)字節信息。在DOS 中每扇區是128×2的2次方=512字節,盤片表面上以盤片中心爲圓心,不同半徑的同心圓稱爲磁道。硬盤中,不同盤片相同半徑 的磁道所組成的圓柱稱爲柱面。磁道與柱面都是表示不同半徑的圓,在許多場合,磁道和柱面可以互換使用,我們知道,每個磁盤有兩個面,每個面都有一個磁頭,習慣用磁頭號來區分。扇區,磁道(或柱面)和磁頭數構成了硬盤結構的基本參數,幫這些 參數可以得到硬盤的容量,基計算公式爲:
存儲容量=磁頭數×磁道(柱面)數×每道扇區數×每扇區字節數
要點:(1)硬盤有數個盤片,每盤片兩個面,每個面一個磁頭
(2)盤片被劃分爲多個扇形區域即扇區
(3)同一盤片不同半徑的同心圓爲磁道
(4)不同盤片相同半徑構成的圓柱面即柱面
(5)公式: 存儲容量=磁頭數×磁道(柱面)數×每道扇區數×每扇區字節數
(6)信息記錄可表示爲:××磁道(柱面),××磁頭,××扇區
2.簇
“簇”是DOS進行分配的最小單位。當創建一個很小的文件時,如是一個字節,則它在磁盤上並不是只佔一個字節的空間,
而是佔有整個一簇。DOS視不同的存儲介質(如軟盤,硬盤),不同容量的硬盤,簇的大小也不一樣。簇的大小可在稱爲磁盤
參數塊(BPB)中獲取。簇的概念僅適用於數據區。
本點:(1)“簇”是DOS進行分配的最小單位。
(2)不同的存儲介質,不同容量的硬盤,不同的DOS版本,簇的大小也不一樣。
(3)簇的概念僅適用於數據區。
硬盤分區小技巧——如何劃分整G硬盤
大家分區的時侯都會輸入數字,比如你想得到一個2G的分區你也許會輸入2000M或者2048M其實你輸入的這些數字所分出來的區在Windows下面都不會被認成整數的2G,而是1.9?G,想要得到Windows下的整數G分區,你必須知道一個公式,通過這個公式算出的值就是被Windows認成整數G的值。
整數G計算公式:(X-1)*4+1024*X=Y
說明:以上“ * ” 表示 “ × ” ,下同
其中X就是你想要得到的整數分區的數值,單位是G,Y是你分區時應該輸入的數字,單位是M,例如我想得到Windows下的3G整數空間,那麼我分區時就應該輸入(3-1)*4+1024*3=3080,那麼我們應該在分區時輸入3080作爲分區的大小,同理欲分出10G的空間則應該是(10-1)*4+1024*10=10276,輸入10276將會得到10G的整數空間.
例:
(10-1)*4+1024*10=10276 10G
(5-1)*4+1024*5=5136 5G
(15-1)*4+1024*15=15416 15G
(20-1)*4+1024*20=20556 20G
MBR:主引導記錄,位於#0位置
MBR又稱爲主引導記錄,大小爲一個扇區,總共512個字節。
佔用Boot Sector的前446個字節(0~0x1BD),存放系統主引導程序(它負責從活動分區中裝載並且運行系統引導程序)。 DPT即主分區表佔用64個字節(0x1BE~0x1FD),記錄磁盤的基本分區信息。主分區表分爲四個分區項,每項16個字節,分別記錄每個主分區的信息(因此最多可以有四個主分區)。 Boot Record ID即引導區標記佔用兩個字節(0x1FE~0x1FF),對於合法引導區,它等於0xaa55,這是判別引導區是否合法的標誌)。
使用LILO或GRUB引導裝載程序
由上看來:以後直接用GRUB~~但是windows使用的是LILO
作業:
畫出硬盤結構圖,windows中盤符對應linux中硬盤號及大小等信息。
爲了裝麒麟,坑爹的丟棄掉虛擬機,結果我那內含價值80元的雙XP系統就這麼白白送出去了~~~~哭死了,安裝了一天,結果是我的原版打造的大運風格的雙XP系統送出去了不說,還把我的500G的盤格式化了N多次~~~~幸好百度網盤有兩個T。但是還是很不爽。直到最後請同學安好了系統。
對於GRUB還要好好研究一下。那個玩意還是蠻好玩的。
論壇留言:
1.在win下A B盤是用到軟驅上的 通常是C盤對應*da1 第一個*的值取決於是sata(sda1)還是ide(hda1)在win中出了系統分區不能改盤符外 其他均可改(開始 運行 diskmgmt確定) 最多隻能四個主分區 如果要設擴展分區的話最多隻能設三個主分區 編號依分區在磁盤的位置依次爲〔sh〕da1 2 3 4<全是主盤> 如有擴展分區 擴展分區爲〔sh〕da4 邏輯分區依次爲〔sh〕da5 6 7 da是第一主盤 第一從盤爲db
2.最簡單的情況還是用卷標掛載,而不是用設備掛載,方法都已經說了啊,mount用-L參數,fstab文件就是把設備名換成 LABEL=卷標名
在ubuntu下查看的結果:
由於是新手,一開始不會使用超級權限,使用普通賬戶sudo都不能將fdisk -l /dev/sda* 結果打印出來,實在沒有辦法,使用附錄一中的方法,切換到root用戶了。一打命令,結果就出來了。
最終的結果是:
win |
linux |
|||||
C: |
D: |
E: |
F: |
swap |
/home |
/ |
Sda1 |
Sda5 |
Sda6 |
Sda7 |
Sda3 |
Sda8 |
Sda4 |
25G |
39.16G |
150G |
225.8G |
1.91G |
4.66G |
19.28G |
Windows中的盤在linux中顯示有些異常,會顯示/dev/sda1p4之類的。。。在找答案~~~
root@dayun-123:/home/dayun# fdisk -l /dev/sd*
Disk /dev/sda: 500.1 GB, 500107862016 bytes //俺是500G的硬盤
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors//好像是說255個磁頭,63個磁道,60801個扇區數,共976773168個扇區
//存儲容量=磁頭數×磁道(柱面)數×每道扇區數×每扇區字節數
//扇區數=255*63*60801=976773168【計算器得到的】
//Zone = 976773168*512B=465.76GB【計算器得到的】
Units = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytes //扇區大小 512KB 我格式化硬盤時,一個簇是4096字節I/O size (minimum/optimal): 4096 bytes / 4096 bytesDisk identifier: 0xf0b1ebb0 //硬盤識別????
Device Boot Start End Blocks Id System/dev/sda1 * 4096 52432895 26214400 7 HPFS/NTFS/exFAT
//Sda1是windows的系統盤C盤,NTFS,25G
//爲啥起始爲4096:位於0號扇區上存放着分區記錄。
/dev/sda2 96860158 976771071 439955457 f W95 Ext'd (LBA)
//sda2是拓展分區,是所有邏輯分區的總稱
Partition 2 does not start on physical sector boundary.
//2分區不啓動對物理扇區邊界。【有道翻譯】???
/dev/sda3 52432896 56432639 1999872 82 Linux swap / Solaris
//sda3是linux交換分區,和windows虛擬內存一個意思。此處需要拓展,我內存4G
/dev/sda4 56432640 96858111 20212736 83 Linux
//sda4是分給linux掛載/的20G
/dev/sda5 106623366 188747775 41062205 7 HPFS/NTFS/exFAT
//sda5是windows邏輯分區D盤
Partition 5 does not start on physical sector boundary.
/dev/sda6 188751872 503320575 157284352 7 HPFS/NTFS/exFAT
//sda6是windows邏輯分區E盤
/dev/sda7 503320639 976771071 236725216+ 7 HPFS/NTFS/exFAT
//sda6是windows邏輯分區F盤
Partition 7 does not start on physical sector boundary.
/dev/sda8 96860160 106622975 4881408 83 Linux
//sda8是linux掛載/home分區
Partition table entries are not in disk order
Disk /dev/sda1: 26.8 GB, 26843545600 bytes //linux盤的大小總共26.8G
255 heads, 63 sectors/track, 3263 cylinders, total 52428800 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/O size (minimum/optimal): 4096 bytes / 4096 bytesDisk identifier: 0x6e697373
This doesn't look like a partition table //這看起來不象一個分區表[金山詞霸]
Probably you selected the wrong device. //你可能選擇了錯誤的裝置[金山詞霸]
Device Boot Start End Blocks Id System
/dev/sda1p1 ? 1936269394 3772285809 918008208 4f QNX4.x 3rd partPartition 1 does not start on physical sector boundary./dev/sda1p2 ? 1917848077 2462285169 272218546+ 73 UnknownPartition 2 does not start on physical sector boundary./dev/sda1p3 ? 1818575915 2362751050 272087568 2b UnknownPartition 3 does not start on physical sector boundary./dev/sda1p4 ? 2844524554 2844579527 27487 61 SpeedStorPartition 4 does not start on physical sector boundary.
Partition table entries are not in disk order //分區表條目不是在磁盤的秩序
//swap分區詳細情況
Disk /dev/sda3: 2047 MB, 2047868928 bytes255 heads, 63 sectors/track, 248 cylinders, total 3999744 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/O size (minimum/optimal): 4096 bytes / 4096 bytesDisk identifier: 0x00000000Disk /dev/sda3 doesn't contain a valid partition table
//根目錄詳細情況
Disk /dev/sda4: 20.7 GB, 20697841664 bytes255 heads, 63 sectors/track, 2516 cylinders, total 40425472 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/O size (minimum/optimal): 4096 bytes / 4096 bytesDisk identifier: 0x00000000Disk /dev/sda4 doesn't contain a valid partition table
//windows D盤詳細情況
Disk /dev/sda5: 42.0 GB, 42047697920 bytes255 heads, 63 sectors/track, 5112 cylinders, total 82124410 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/O size (minimum/optimal): 4096 bytes / 4096 bytesAlignment offset: 1024 bytesDisk identifier: 0x69205244This doesn't look like a partition table
Probably you selected the wrong device. Device Boot Start End Blocks Id System/dev/sda5p1 ? 218129509 1920119918 850995205 72 UnknownPartition 1 does not start on physical sector boundary./dev/sda5p2 ? 729050177 1273024900 271987362 74 UnknownPartition 2 does not start on physical sector boundary./dev/sda5p3 ? 168653938 168653938 0 65 Novell Netware 386/dev/sda5p4 2692939776 2692991410 25817+ 0 EmptyPartition 4 does not start on physical sector boundary.Partition table entries are not in disk order //windows E盤詳細情況
Disk /dev/sda6: 161.1 GB, 161059176448 bytes255 heads, 63 sectors/track, 19580 cylinders, total 314568704 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/O size (minimum/optimal): 4096 bytes / 4096 bytesDisk identifier: 0x69205244This doesn't look like a partition tableProbably you selected the wrong device. Device Boot Start End Blocks Id System/dev/sda6p1 ? 218129509 1920119918 850995205 72 UnknownPartition 1 does not start on physical sector boundary./dev/sda6p2 ? 729050177 1273024900 271987362 74 UnknownPartition 2 does not start on physical sector boundary./dev/sda6p3 ? 168653938 168653938 0 65 Novell Netware 386Partition 3 does not start on physical sector boundary./dev/sda6p4 2692939776 2692991410 25817+ 0 EmptyPartition table entries are not in disk order //windows F盤詳細情況
Disk /dev/sda7: 242.4 GB, 242406621696 bytes255 heads, 63 sectors/track, 29470 cylinders, total 473450433 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/O size (minimum/optimal): 4096 bytes / 4096 bytesAlignment offset: 512 bytesDisk identifier: 0x69205244This doesn't look like a partition tableProbably you selected the wrong device. Device Boot Start End Blocks Id System/dev/sda7p1 ? 218129509 1920119918 850995205 72 UnknownPartition 1 does not start on physical sector boundary./dev/sda7p2 ? 729050177 1273024900 271987362 74 Unknown/dev/sda7p3 ? 168653938 168653938 0 65 Novell Netware 386Partition 3 does not start on physical sector boundary./dev/sda7p4 2692939776 2692991410 25817+ 0 EmptyPartition 4 does not start on physical sector boundary.Partition table entries are not in disk order
//linux 掛載/home詳細情況Disk /dev/sda8: 4998 MB, 4998561792 bytes255 heads, 63 sectors/track, 607 cylinders, total 9762816 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/O size (minimum/optimal): 4096 bytes / 4096 bytesDisk identifier: 0x00000000Disk /dev/sda8 doesn't contain a valid partition table
root@dayun-123:/home/dayun#
附錄一
ubuntu -超級管理員root 登陸
Ubuntu有一個與衆不同的特點,那就是初次使用時,你無法作爲root來登錄系統,爲什麼會這樣?這就要從系統的安裝說起。對於其他Linux系統來 說,一般在安裝過程就設定root密碼,這樣用戶就能用它登錄root帳戶或使用su命令轉換到超級用戶身份。與之相反,Ubuntu默認安裝時,並沒有 給root用戶設置口令,也沒有啓用root帳戶。問題是要想作爲root用戶來運行命令該怎麼辦呢?沒關係,我們可以使用sudo命令達此目的。 sudo是linux下常用的允許普通用戶使用超級用戶權限的工具,該命令爲管理員提供了一種細顆粒度的訪問控制方法,通過它人們既可以作爲超級用戶又 可以作爲其它類型的用戶來訪問系統。這樣做的好處是,管理員能夠在不告訴用戶root密碼的前提下,授予他們某些特定類型的超級用戶權限,這正是許多系統 管理員所夢寐以求的。 設置分配很簡單,只要爲root設置一個root密碼就行了: $ sudo passwd root 之後會提示要輸入root用戶的密碼,連續輸入root密碼,再使用:$ su 就可以切換成超級管理員用戶登陸了!【我用的是這種方法】 一、 其實我個人認爲這沒有多大必要,因爲當你需要 root 的權限時,使用 sudo 便可以了。如果你實在需要在 Ubuntu 中啓用 root 帳號的話,那麼不妨執行下面的操作: 1.重新設置 root 的密碼: $sudo passwd root #按照提示輸入兩次新的密碼,並加以確認。 2.啓用root用戶登錄: $sudo vi /etc/X11/gdm/gdm.conf #打開gnome的配置文件,在末行模式中輸入:AllowRoot回車,找到AllowRoot=false ,把false改爲true,保存後退出。 之後,重啓系統時,就可以用 root 登錄了。如果你想要禁用 root 帳號,則執行下列命令: $sudo passwd -l root 二、 Ubuntu 中的 root 帳號默認是被禁用了的。在這種情況之下,如果你想要使用 root 的權限來幹些事情,就需要 sudo 指令。對某些朋友來說,他們可能需要激活 Ubuntu 中的 root 帳號。 在 Ubuntu 中激活 root 帳號的過程如下: 1. 在終端執行 sudo passwd root 指令後,系統將會提示你設置一個新的 root 帳號密碼。 2. 點擊 System -> Preferences -> Login Window 菜單,並切換到 Security 選項頁,然後選中其下的“Allow local system administrator login”選項。 執行上述兩步後,你便可以使用 root 帳號登錄 Ubuntu 系統了。 如果要再次禁用 root 帳號,那麼可以執行 sudo passwd -l root。 三、 如果一直想用root也可以"sudo -s"。