引言
為什么要把硬盤分區(qū)?
1、維護(hù)相關(guān):如可以把相同類型,有共同安全需要的內(nèi)容,放到不同的分區(qū)中,這樣方便了維護(hù)。
2、效率因素:如果一個(gè)大的硬盤,在整個(gè)硬盤上找到相應(yīng)的資料,很費(fèi)時(shí)。
3、硬盤限額:限額的控制,只能對(duì)分區(qū)來(lái)實(shí)施。
4、備份資料:這個(gè)和第一個(gè)控制有一點(diǎn)雷同,我可以對(duì)重要的信息放到某個(gè)分區(qū),方便備份。
5、安全考慮:如果大的硬盤,一但有損壞的話,就有可能導(dǎo)致整個(gè)硬盤資料丟失,如果把硬盤的資料分開來(lái)存放的話,損失會(huì)很小。
你可以把這個(gè)磁盤想像成您家的房子,而分區(qū)就相當(dāng)于房子里面的房間一樣。
為什么要對(duì)分區(qū)進(jìn)行格式化?
格式化就是對(duì)分區(qū)進(jìn)行初始化的一種操作,為了讓我們能向分區(qū)中寫入數(shù)據(jù)。如果你看過(guò)一天一點(diǎn)學(xué)習(xí)Linux之認(rèn)識(shí)文件系統(tǒng) 的話,那么就你會(huì)明白格式化操作其實(shí)就是創(chuàng)建分區(qū)的Inode/block/super block/group block等等信息。
第一部分:磁盤的分區(qū)
下面我們就用虛擬機(jī)來(lái)實(shí)驗(yàn)RHEL6上的硬盤分區(qū)與格式化
在虛擬機(jī)上增加一塊硬盤
我以VMware workstation為例,演示如何給RHEL6系統(tǒng)上增加一塊SCSI硬盤,并設(shè)置大小寫為20G。
關(guān)機(jī)狀態(tài)下:在VMware Workstation的工具欄中選擇VM——Settings——Hardware——Add——選擇Hard Disk——Next——Create a virtual disk——Next——SCSI(Recommended)——Next——Maximum disk size(GB):20.0——Next——Finish
這樣就就為你的系統(tǒng)增加了一塊20G的SCSI的硬盤了,然后啟動(dòng)系統(tǒng),下面就開始今天的分區(qū)操作了。
對(duì)硬盤進(jìn)行分區(qū)操作
[root@yufei ~]# fdisk -l
顯示出系統(tǒng)中所有的硬盤信息
[root@yufei ~]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00093fdc#設(shè)備名 是否是啟動(dòng)設(shè)備 開始柱面 結(jié)果柱面 大小1K為單位 分區(qū)類型標(biāo)識(shí) 分區(qū)的系統(tǒng)類型Device Boot Start End Blocks Id System/dev/sda1 * 1 1913 15360000 83 Linux/dev/sda2 1913 1978 524288 82 Linux swap / SolarisDisk /dev/sdb: 21.5 GB, 21474836480 bytes #磁盤的名稱、大小255 heads, 63 sectors/track, 2610 cylinders #磁頭、扇區(qū)、柱面數(shù)量Units = cylinders of 16065 * 512 = 8225280 bytes#每個(gè)柱面的大小Sector size (logical/physical): 512 bytes / 512 bytes#扇區(qū)的大小I/O size (minimum/optimal): 512 bytes / 512 bytes #硬盤的IO情況Disk identifier: 0x00000000 ##磁盤的標(biāo)識(shí)Disk /dev/sdb doesn't contain a valid partition table
這里面會(huì)顯示磁盤的空間大小以及磁頭、扇區(qū)、柱面的數(shù)量。如果沒(méi)有分區(qū)的磁盤,他會(huì)給有相應(yīng)的提示“Disk /dev/sdb doesn’t contain a valid partition table”。這就是我們要對(duì)其分區(qū)的磁盤sdb。
[root@yufei ~]# fdisk /dev/sdb
顯示fdisk的幫助信息
Command (m for help):m #顯示幫助信息Command actiona toggle a bootable flagb edit bsd disklabelc toggle the dos compatibility flagd delete a partition #刪除一個(gè)分區(qū)l list known partition types #列出分區(qū)類型m print this menun add a new partition #增加一個(gè)新的分區(qū)o create a new empty DOS partition tablep print the partition table #打印出分區(qū)表q quit without saving changes #不保存退出s create a new empty Sun disklabelt change a partition's system id #改變分區(qū)類型u change display/entry unitsv verify the partition table #校驗(yàn)分區(qū)表w write table to disk and exit #保存分區(qū)表x extra functionality (experts only)
新增分區(qū)
Command (m for help): nCommand actione extended #擴(kuò)展分區(qū)p primary partition (1-4) #主分區(qū)由于硬盤的設(shè)計(jì)原因,我們的主分區(qū)表最多是4個(gè)。至于為什么會(huì)是這樣,請(qǐng)大家參考:帶您深入了解硬盤分區(qū)表http://www.opsers.org/base/take-you-in-depth-understanding-of-the-hard-disk-partition-table.html。如果想更詳細(xì)了解的話,請(qǐng)觀看我以前的視頻內(nèi)容:Linux分區(qū)與格式化及文件系統(tǒng)優(yōu)化http://www.opsers.org/videos/chapter-x-linux-partition-and-format-and-file-system-optimization.htmlpPartition number (1-4): 1 #分區(qū)號(hào)First cylinder (1-2610, default 1): #柱面默認(rèn)是1,直接回車Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):+1G #設(shè)置結(jié)束柱面或者用分區(qū)的大?。?K、M、G)來(lái)讓系統(tǒng)自動(dòng)計(jì)算結(jié)束柱面 然后回車
列出分區(qū)信息
Command (m for help): p #列出剛才的分區(qū)信息Disk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd6737273Device Boot Start End Blocks Id System/dev/sdb1 1 132 1060258+ 83 LinuxCommand (m for help): nCommand actione extendedp primary partition (1-4)pPartition number (1-4): 2First cylinder (133-2610, default 133):Using default value 133Last cylinder, +cylinders or +size{K,M,G} (133-2610, default 2610): +50 #在原來(lái)的基礎(chǔ)上加上50個(gè)柱面Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd6737273Device Boot Start End Blocks Id System/dev/sdb1 1 132 1060258+ 83 Linux/dev/sdb2 133 183 409657+ 83 Linux
新增加擴(kuò)展分區(qū)
Command (m for help): nCommand actione extendedp primary partition (1-4)e #我們來(lái)分?jǐn)U展分區(qū)Partition number (1-4): 3 #擴(kuò)展分區(qū)的分區(qū)號(hào)是3,當(dāng)然也可以是4,但不可能是大于4的。First cylinder (184-2610, default 184): #擴(kuò)展分區(qū)的起始柱面Using default value 184Last cylinder, +cylinders or +size{K,M,G} (184-2610, default 2610): #擴(kuò)展分區(qū)的結(jié)束柱面,默認(rèn)就是全部劃分給擴(kuò)展分區(qū)了Using default value 2610Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd6737273Device Boot Start End Blocks Id System/dev/sdb1 1 132 1060258+ 83 Linux/dev/sdb2 133 183 409657+ 83 Linux/dev/sdb3 184 2610 19494877+ 5 Extended #注意這里的類型已經(jīng)和上面的不一樣了
增加邏輯分區(qū)
Command (m for help): nCommand actionl logical (5 or over) #這時(shí)候就和上面的不一樣了,因?yàn)樵跀U(kuò)展分區(qū)中再分的話,就是邏輯分區(qū)了,必需是5以上p primary partition (1-4) #因?yàn)槲覀冞€可以分一個(gè)主分區(qū)出來(lái),所以這里會(huì)顯示這樣的信息。當(dāng)然,因?yàn)槲覀円呀?jīng)把硬盤所有我空間全分給了擴(kuò)展分區(qū),所以,我們分不出那個(gè)主分區(qū)了。lFirst cylinder (184-2610, default 184):Using default value 184Last cylinder, +cylinders or +size{K,M,G} (184-2610, default 2610): +2GCommand (m for help): PDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd6737273Device Boot Start End Blocks Id System/dev/sdb1 1 132 1060258+ 83 Linux/dev/sdb2 133 183 409657+ 83 Linux/dev/sdb3 184 2610 19494877+ 5 Extended/dev/sdb5 184 445 2104483+ 83 Linux #這個(gè)分區(qū)就是邏輯分區(qū)了,我是怎么看出來(lái)的呢?關(guān)鍵是你要注意兩點(diǎn):1是分區(qū)號(hào)。這里是sdb5。2是分區(qū)的開始柱面是從184開始的,而我們的擴(kuò)展分區(qū)也是從184開始的,可以肯定是在擴(kuò)展分區(qū)里面分出來(lái)的分區(qū),那當(dāng)然是邏輯分區(qū)啊
增加SWAP分區(qū)
下面我們?cè)俜忠粋€(gè)512M的分區(qū)出來(lái),為了我們后面的課程講解。這個(gè)分區(qū)我們后面會(huì)用他當(dāng)作SWAP分區(qū)。
Command (m for help): nCommand actionl logical (5 or over)p primary partition (1-4)lFirst cylinder (446-2610, default 446):Using default value 446Last cylinder, +cylinders or +size{K,M,G} (446-2610, default 2610): +512MCommand (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd6737273Device Boot Start End Blocks Id System/dev/sdb1 1 132 1060258+ 83 Linux/dev/sdb2 133 183 409657+ 83 Linux/dev/sdb3 184 2610 19494877+ 5 Extended/dev/sdb5 184 445 2104483+ 83 Linux/dev/sdb6 446 511 530113+ 83 Linux
我們下面來(lái)個(gè)錯(cuò)誤的演示
Command (m for help): nCommand actionl logical (5 or over)p primary partition (1-4)pSelected partition 4No free sectors available
因?yàn)橐呀?jīng)沒(méi)有剩余的扇區(qū)了,所以肯定是分不了主分區(qū)了。
轉(zhuǎn)換分區(qū)類型
Command (m for help): l #這個(gè)是L的小寫,不是1??!就是列出分區(qū)的類型,因?yàn)楹芏?,所以我就找?guī)讉€(gè)出來(lái)82 Linux swap / #這個(gè)就是SWAP分區(qū)代碼了83 Linux #這個(gè)就是Linux系統(tǒng)的分區(qū)代碼了8e Linux LVM #LVM分區(qū)的代碼Command (m for help): t #轉(zhuǎn)換分區(qū)類型Partition number (1-6): 6 #選擇轉(zhuǎn)換的分區(qū)號(hào)Hex code (type L to list codes): 82 #轉(zhuǎn)換成的類型Changed system type of partition 6 to 82 (Linux swap / Solaris) #提示內(nèi)容Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd6737273Device Boot Start End Blocks Id System/dev/sdb1 1 132 1060258+ 83 Linux/dev/sdb2 133 183 409657+ 83 Linux/dev/sdb3 184 2610 19494877+ 5 Extended/dev/sdb5 184 445 2104483+ 83 Linux/dev/sdb6 446 511 530113+ 82 Linux swap / Solaris
我們就先分這么多出來(lái),當(dāng)然這個(gè)磁盤還有很多空間,因?yàn)檫@只是演示,所以無(wú)需全部來(lái)分完。下面就是重要一個(gè)環(huán)節(jié),保存我們分好的分區(qū)表,如果不保存,那么我們剛才的功勞,等于沒(méi)有做。
保存分區(qū)表
Command (m for help): w #保存分區(qū)表The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.
注意,如果出現(xiàn)
The kernel still uses the old table.The new table will be used at the next reboot.
這樣的提示的話,他的意思就是讓我們重新啟動(dòng)系統(tǒng),好讓內(nèi)核認(rèn)出我們新的分區(qū)表,為了不讓系統(tǒng)重新啟動(dòng),我們可以用
partprobe
這個(gè)命令,來(lái)讓內(nèi)核重新獲得一次分區(qū)表的信息。
這時(shí)候我們?cè)儆?/p>
[root@yufei ~]# fdisk -l就可以看到我們分出來(lái)的分區(qū)內(nèi)容了,我只取有用的內(nèi)容Disk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd6737273Device Boot Start End Blocks Id System/dev/sdb1 1 132 1060258+ 83 Linux/dev/sdb2 133 183 409657+ 83 Linux/dev/sdb3 184 2610 19494877+ 5 Extended/dev/sdb5 184 445 2104483+ 83 Linux/dev/sdb6 446 511 530113+ 82 Linux swap / Solaris
如果說(shuō),你在分區(qū)的時(shí)候,哪里出現(xiàn)了錯(cuò)誤,或者是不想那么操作的話,按q退出,然后重新來(lái)過(guò)即可。千萬(wàn)在確保正確后再用w保存哦,如果你分錯(cuò)了硬盤的話,那么數(shù)據(jù)就OVER了??!
這個(gè)分區(qū)其實(shí)很簡(jiǎn)單,關(guān)鍵是多操作幾次,熟練后就很容易了!
注意:SATA 硬盤最多能夠支持到15個(gè)分區(qū), IDE 則可以支持到63個(gè)。如果超過(guò)了這個(gè)限制,那么你的硬盤多余的空間也就浪費(fèi)。
第二部分:格式化
分區(qū)完,我們的這塊硬盤還是不能使用的,需要對(duì)分區(qū)進(jìn)行格式化,讓其變成系統(tǒng)認(rèn)識(shí)的分區(qū)。關(guān)于格式化的原理,大家可以參考:Linux分區(qū)與格式化及文件系統(tǒng)優(yōu)化這里我就不多說(shuō)了,下面進(jìn)行格式化的操作。
下面我們以第一個(gè)分區(qū)為列來(lái)講解如何對(duì)分區(qū)進(jìn)行格式化
先查看我們要進(jìn)行格式化的磁盤分區(qū)情況
[root@yufei ~]# fdisk -l /dev/sdbDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd6737273Device Boot Start End Blocks Id System/dev/sdb1 1 132 1060258+ 83 Linux/dev/sdb2 133 183 409657+ 83 Linux/dev/sdb3 184 2610 19494877+ 5 Extended/dev/sdb5 184 445 2104483+ 83 Linux/dev/sdb6 446 511 530113+ 82 Linux swap / Solaris
再來(lái)認(rèn)識(shí)一下格式化的工具
mkfs [-t 文件系統(tǒng)格式] 設(shè)備名
或者是
mkfs.文件系統(tǒng)格式 設(shè)備名
用mkfs[tab][tab]就可以顯示出系統(tǒng)所有支持的格式了
這個(gè)里面有很多的參數(shù),可以用–hlep來(lái)查看
[root@yufei ~]# mkfs.ext4 --hlepmkfs.ext4: invalid option -- '-'Usage: mkfs.ext4 [-c|-l filename] [-b block-size] [-f fragment-size][-i bytes-per-inode] [-I inode-size] [-J journal-options][-G meta group size] [-N number-of-inodes][-m reserved-blocks-percentage] [-o creator-os][-g blocks-per-group] [-L volume-label] [-M last-mounted-directory][-O feature[,...]] [-r fs-revision] [-E extended-option[,...]][-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]
-b 指定block的大小 1024 2048 4096 默認(rèn)是4096
-I 指定inode的大小(min 128/max 4096) 默認(rèn)是256
-i 指定多少個(gè)字節(jié)分配一個(gè)inode
-L 指定卷標(biāo)
分區(qū)演示
[root@yufei ~]# mkfs.ext4 -L opsers_tech -b 2048 -i 10240 /dev/sdb1mke2fs 1.41.12 (17-May-2010)Filesystem label=opsers_techOS type: LinuxBlock size=2048 (log=1)Fragment size=2048 (log=1)Stride=0 blocks, Stripe width=0 blocks106128 inodes, 530128 blocks26506 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=53791948833 block groups16384 blocks per group, 16384 fragments per group3216 inodes per groupSuperblock backups stored on blocks:16384, 49152, 81920, 114688, 147456, 409600, 442368Writing inode tables: doneCreating journal (16384 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 32 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.
因?yàn)槲业姆謪^(qū)很小,所以格式化是很快的,如果分區(qū)很大的話,這個(gè)也是要消耗一些時(shí)間的。大家可以用默認(rèn)格式化與自定義格式化來(lái)進(jìn)行對(duì)比。
希望大家和其他三篇文章結(jié)合起來(lái)看,我相信這三篇文章,應(yīng)該能徹底的讓你了解并掌握磁盤的分區(qū)、格式化原理與優(yōu)化了。
一天一點(diǎn)學(xué)習(xí)Linux之認(rèn)識(shí)文件系統(tǒng):
一天一點(diǎn)學(xué)習(xí)Linux之文件系統(tǒng)屬性更改相關(guān)操作:
Linux分區(qū)與格式化及文件系統(tǒng)優(yōu)化:
注意:如果你遇到了這樣的提示
/dev/sdx:No such file or directory //找不到該分區(qū),無(wú)法格式化
那么和我們上面的是一樣的原因,就是內(nèi)核無(wú)法讀到新的分區(qū)表。解決方法有兩個(gè)
1.重啟系統(tǒng)。系統(tǒng)重新啟動(dòng)的時(shí)候會(huì)重新加載分區(qū)表,新的分區(qū)自然也就生效了。
2.為了節(jié)省時(shí)間或者系統(tǒng)環(huán)境不允許重啟,使用partprobe命令,在不重啟情況下重新加載分區(qū)表。
[root@yufei ~]# partprobe //重新加載所有硬盤的分區(qū)表[root@yufei ~]# partprobe /dev/sdb //只重新加載第一塊硬盤的分區(qū)表如果沒(méi)有那個(gè)命令的話,那就安裝rpm -q parted
本文關(guān)鍵字:一天一點(diǎn),學(xué)習(xí)Linux,RHEL6,硬盤,分區(qū),格式化,磁盤優(yōu)化