磁盤簡介
計算機總是需要記錄與讀取數據的,而這些數據當然不可能每次都由用戶經過鍵盤來打字。所以就需要有存儲設備了。計算機系統上面的存儲設備包括硬盤、軟盤、CD、DVD、磁帶機、U盤等,都是可以用來存儲數據的。最常見的也就是硬盤了,下面我們就來簡單介紹下硬盤吧。
一、磁盤的物裏組成
盤片:主要是用來記錄數據的部分。
扇區(Sector)爲最小的物理存儲單位,第個扇區爲512bytes;
將扇區組成一個圓,那就是柱面(Cylinder),柱面是分區(Parition)的最小單位;
第一個扇區最重要,裏面有引導記錄(Masterbootrecord,MBR)及分區表(partition table),其中 MBR佔446bytes,而分區表佔有64bytes。
機械手臂與機械手臂上的磁頭:可讀寫盤片上的數據。
主軸馬達:可以轉動盤片,讓機械手臂的磁頭在盤片上讀寫數據。
二、磁盤的分區
主分區與擴展分區最多可以有4個(分區表64字節,每分區佔16字節);
擴展分區最多只能有一個;
邏輯分區是由擴展分區持續分出來的分區;
能夠被格式化後作爲數據訪問的分區爲主要分區與邏輯分區,擴展分區無法格式化;
邏輯分區的數量以操作系統而不同,在Linux系統中,IDE硬盤最多有59個邏輯分區(5-63),SATA硬盤則有11個邏輯分區(5-15);
三、各接口的磁盤在Linux中的文件名分別爲
/dev/sd[a-p][1-15]:爲SCSI,SATA,USB,Flash等接口的磁盤文件名;
/dev/hd[a-d][1-63]:爲IDE接口的磁盤文件名;
四、文件系統分類
Windows :NTFS、FAT32
Linux:ext2、ext3、ext4、xfs、reiserfs、nfs、iso9660、jfs、brtfs
小結:通過以上內容,我們簡單瞭解了磁盤的組成、分區、接口的磁盤命名及文件系統的分類。下面我們來具體看下磁盤分區、格式化及磁盤掛載所使用到的命令。我們分別介紹一下:
五、磁盤分區 fdisk
格式:fdisk [options] <設備名稱>
【參數】
-l:輸出後面接的設備所有的分區內容。若僅有fdisk -l 時,則系統將會把整個系統內核能夠找到的設備的分區均列出來。
舉例 :查看第二塊磁盤(sdb)的分區情況,我們可以通過以下命令來查看:
如果想要查看所有硬盤分區,即可使用以下命令,不加設備名即可,我們就可以看到所有掛載的磁盤:
下面我們來看下fdisk這個命令是如何來進行分區的。剛剛已介紹過格式了,我們先來執行一下看看吧。
[root@lab02 ~]# fdisk /dev/sdb
使用fdisk這個程序是完全不需要我們記這些命令的,如上所示,我們只需要按下m就能夠看到所有的操作。上面標記爲藍色的是幾個比較重要的操作。其中比較不一樣的是q與w這兩個,不管你進行了什麼操作,只要離開fdisk時按下"q",那麼所有的操作都不會生效!相反,按下“w”就是操作生效的意思。所以,可以隨便玩玩fdisk,只要離開的時候按下q就可以了。我們先來看看分區表的信息吧。
使用“p”可以列出目前這塊磁盤的分區表信息,這個信息的上半部分顯示整體磁盤的狀態。下半部分的分區表信息主要列出第個分區的信息項目。每個項目的意義爲:
Device:設備文件名,依據不同的磁盤接口/分區位置而變;
Boot:表示是否爲開機引導模塊,通常Windows系統的C盤需要這模塊;
Start,End:表示這個分區在哪個柱面號碼之間,可以決定此分區的大小;
Blocks:就是以1K爲單位的容量;
ID,System:代表這個分區的文件系統類型。
下面我們來新建一個分區吧,看看效果吧:
分區創建好了,我們輸入“w”保存即可。然後通過fdisk -l /dev/sdb查看下吧。分區創建好了,內核是否正常加載了我們剛剛創建的分區呢?我們可以通過查看下面的文件來得到答案。
[root@lab02 ~]#cat /proc/partitions major minor #blocks name 8 16 125829120 sdb 8 17 5253223 sdb1 8 18 5253255 sdb2 <-- 此處表明內核已加載了新創建的分區; 8 0 125829120 sda 8 1 512000 sda1 8 2 125316096 sda2 253 0 52428800 dm-0 253 1 1015808 dm-1 253 2 71868416 dm-2
如果在此文件中,沒有被內核識別的話,讓內核重新加載分區信息,我們可以通過以下命令:
RHEL5讓內核重新讀取硬盤分區表:
partprobe [DEVICE]
RHEL6讓內核重新讀取硬盤分區表:
partx -a [PARTITION] DEVICE
擴展分區能及邏輯分區都創建好了,我們輸入“w”保存即可。刪除分區就更容易了,在這裏就不做介紹了。創建分區部分內容就介紹到這裏了。
分區創建好了,下面我們就要對創建好的分區進行格式化,要不然新建的分區是不能使用的。我們來看看格式化的命令吧!
六、磁盤格式化 mkfs mke2fs
分區完畢後自然就是要進行文件系統的格式化。格式化的命令非常簡單,那就是mkfs(即 make file system之意)這個命令。這個命令其它是個綜合的命令,它會去調用正確的文件系統格式化工具軟件。
格式:mkfs [-t 文件系統格式] 設備文件
【參數】
-t:可以接文件系統格式,例如:ext2、ext3、ext4、vfat等(系統支持纔會生效)
例 :將剛剛創建的/dev/sdb5邏輯分區格式化爲ext4文件系統
[root@lab02 ~]#mkfs -t ext4 /dev/sdb5
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
328656 inodes, 1313305 blocks
65665 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1346371584
41 block groups
32768 blocks per group, 32768 fragments per group
8016 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
看看還有那些格式化命令:
[root@lab02 ~]# mkfs
mkfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev
這些都是格式化的命令哦,在往下看看,你就會更清楚了!
mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4
mkfs -t ext3 = mkfs.ext3 = mke2fs -j = mke2fs -t ext3
mkfs -t ext2 = mkfs.ext2 = mke2fs = mke2fs -t ext2
現在是不是更清楚了啊,我相信你會懂的哦!在格式化完成我,我們會發現結果裏面含有非常多的信息,由於我們沒有詳細指定文件系統的具體選項,因此mkfs命令格式化會使用默認值來進行格式化。其中比較重要的部分爲:文件系統的卷標、block的大小、以及inode的數量。如果要指定這些內容就得要使用mke2fs這個命令嘍!
格式:mke2fs [-t {ext2|ext3|ext4}] [-b block 大小] [-L 卷標] 設備名
-b {1024|2048|4096}:塊大小
塊大小取決CPU對內存頁框大小的支持,x86系統默認頁框大小爲4K;
-L label: 設定卷標
-m #: 預留給管理使用的塊所佔據總體空間的比例;
-r #: 預留給管理使用的塊的個數;
-E: 設定文件系統的擴展屬性;
例:將/dev/sdb5 分區格式化,block設置爲2048,卷標設置爲my_lgh;
# mke2fs -t ext4 -b 2048 -L "my_lgh" /dev/sdb5
通過以下命令查看格式化後是否按需求修改了配置:
[root@lab02 /]#blkid /dev/sdb5 /dev/sdb5: UUID="dc89a957-0aa5-454b-856b-782aab42f04a" TYPE="ext4"LABEL="my_lgh"
[root@lab02 /]#tune2fs -l /dev/sdb5 First block: 0 Block size: 2048 Fragment size: 2048 Reserved GDT blocks: 512 Blocks per group: 16384
下面我們在來看一個和mke2fs相關的命令,tune2fs主要用來修改卷標、整預留給管理使用的塊所佔據總體空間的比例等內容:
格式:tune2fs [參數] 設備名
-l: 顯示文件系統超級塊信息;
-L label:重新設定卷標;
-m #: 調整預留給管理使用的塊所佔據總體空間的比例;
-r #: 調整預留給管理使用的塊個數;
-o:設定掛載默認選項
-O: 設定文件系統默認特性
-E: 調整文件系統的擴展屬性
例:調整預留給管理使用的塊所佔據總體空間的比例調至3%
[root@lab02 /]# tune2fs -m 3 /dev/sdb5
e2label: 顯示或設定卷標;
格式:e2label DEVICE [Volume_label]
# e2label /dev/sdb5 查看卷標
# e2label /dev/sdb5 my_label 修改卷標
blkid DEVICE: 顯示設備的UUID、文件系統類型及卷標;
七、磁盤掛載與卸載 mount umount
掛載前需要確認以下幾件事情:
單一文件系統不應該被重複掛載在不同的掛載點中;
單一目錄不應該重複掛載多個文件系統;
作爲掛載點的目錄理論上應該都是空目錄纔對;
mount 命令:
格式:mount -t fstype [options] DEVICE MOUNT_POINT
DEVICE:
設備文件:/dev/sda1, /dev/hdb2
卷標:LABEL=“label”
UUID: UUID="uuid"
MOUNT_POINT:要掛載到那個目錄
選項:
-o: 用於指定掛載選項,常用的掛載選項
ro: 只讀掛載;
rw: 讀寫,默認即爲讀寫;
noatime: 關閉 更新 訪問時間;
auto: 是否能夠由“mount -a”掛載;
defaults:相當於rw, suid, dev, exec, auto, nouser, async, and relatime
sync: 同步寫入
async:異步寫入
dev:
remount: 重新掛載
loop: 本地迴環設備;
-n: 掛載文件系統時,不更新/etc/mtab文件;
-r: 相當於“-o ro”, 只讀掛載;
舉個例子吧,讓我們來看看掛載命令的具體使用,將我們剛創建的/dev/sdb5邏輯分區掛載到/mydata目錄下。
[root@lab02 /]#mount /dev/sdb5 /mydata/
[root@lab02 /]# ll /mydata/
total 16
drwx------. 2 root root 16384 Dec 23 18:10 lost+found
/mydata 目錄必須事先存在,掛載成功後目錄中會生成一個lost+found目錄。掛載好後,我們就可以正常使用新建的分區了。掛載說完了,我們在來看看怎麼卸載吧。
umount 命令:
格式:umount DEVICE
umount MOUNT_POINT
卸載比較簡單,我們直接舉個例看下就好了。將剛纔掛載到/mydata目錄在卸載掉。
[root@lab02 /]#umount /mydata/
[root@lab02 /]# cd /mydata/
[root@lab02 mydata]# ls
八、設置開機掛載
設置開機掛載,需要修改/etc/fstab文件,這個文件內容共有六個字段,這六個字段非常重要,各字段的含義如下:
第一列:磁盤設備文件名或該設備的Label
第二列:掛載點
第三列:磁盤分區的文件系統
第四列:文件系統參數
第五列:是否被dump命令作用
第六列:是否以fsck檢查扇區
[root@lab02 /]#vim /etc/fstab 在此文件後加如以下一行內容,即可實現開機掛載。
/dev/sdb5 /mydata ext4 defaults 0 0
總結:Linux 磁盤管理及基礎命令使用就先介紹到這裏了,本文主要介紹了磁盤的物理組成、磁盤的分區、文件系統的分類,磁盤分區命令fdisk、mke2fs、磁盤格式化命令mkfs、磁盤掛載命令mount、磁盤卸載命令umout以及開機自動掛載的基本使用。希望對大家有所幫助哦。