磁盤簡介node
計算機老是須要記錄與讀取數據的,而這些數據固然不可能每次都由用戶通過鍵盤來打字。因此就須要有存儲設備了。計算機系統上面的存儲設備包括硬盤、軟盤、CD、DVD、磁帶機、U盤等,都是能夠用來存儲數據的。最多見的也就是硬盤了,下面咱們就來簡單介紹下硬盤吧。
1、磁盤的物裏組成
盤片:主要是用來記錄數據的部分。
扇區(Sector)爲最小的物理存儲單位,第個扇區爲512bytes;
將扇區組成一個圓,那就是柱面(Cylinder),柱面是分區(Parition)的最小單位;
第一個扇區最重要,裏面有引導記錄(Masterbootrecord,MBR)及分區表(partition table),其中 MBR佔446bytes,而分區表佔有64bytes。
機械手臂與機械手臂上的磁頭:可讀寫盤片上的數據。
主軸馬達:能夠轉動盤片,讓機械手臂的磁頭在盤片上讀寫數據。
2、磁盤的分區
主分區與擴展分區最多能夠有4個(分區表64字節,每分區佔16字節);
擴展分區最多隻能有一個;
邏輯分區是由擴展分區持續分出來的分區;
可以被格式化後做爲數據訪問的分區爲主要分區與邏輯分區,擴展分區沒法格式化;
邏輯分區的數量以操做系統而不一樣,在Linux系統中,IDE硬盤最多有59個邏輯分區(5-63),SATA硬盤則有11個邏輯分區(5-15);
3、各接口的磁盤在Linux中的文件名分別爲
/dev/sd[a-p][1-15]:爲SCSI,SATA,USB,Flash等接口的磁盤文件名;
/dev/hd[a-d][1-63]:爲IDE接口的磁盤文件名;
4、文件系統分類
Windows :
NTFS
、
FAT32
Linux:
ext二、
ext3
、
ext4
、
xfs
、
reiserfs
、
nfs
、
iso9660
、
jfs
、
brtfs
小結:經過以上內容,咱們簡單瞭解了磁盤的組成、分區、接口的磁盤命名及文件系統的分類。下面咱們來具體看下磁盤分區、格式化及磁盤掛載所使用到的命令。咱們分別介紹一下:
5、磁盤分區 fdisk
格式:fdisk [options] <設備名稱>
【參數】
-l:輸出後面接的設備全部的分區內容。若僅有fdisk -l 時,則系統將會把整個系統內核可以找到的設備的分區均列出來。
舉例 :查看第二塊磁盤(sdb)的分區狀況,咱們能夠經過如下命令來查看:
# [root@lab02 ~]# fdisk -l /dev/sdb
若是想要查看全部硬盤分區,便可使用如下命令,不加設備名便可,咱們就能夠看到全部掛載的磁盤:
# [root@lab02 ~]# fdisk -l
下面咱們來看下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
到此,一個分區,咱們就已經建立好了!比較容易吧,下面咱們在來建立一個擴展分區,而後在建一個邏輯分區看看具體過程吧。vim
擴展
分區能及邏輯分區都建立好了,咱們輸入「w」保存便可。刪除分區就更容易了,在這裏就不作介紹了。建立分區部份內容就介紹到這裏了。
分區建立好了,下面咱們就要對建立好的分區進行格式化,要否則新建的分區是不能使用的。咱們來看看格式化的命令吧!
6、磁盤格式化 mkfs mke2fs
分區完畢後天然就是要進行文件系統的格式化。格式化的命令很是簡單,那就是mkfs(即 make file system之意)這個命令。這個命令其它是個綜合的命令,它會去調用正確的文件系統格式化工具軟件。
格式:mkfs [-t 文件系統格式] 設備文件
【參數】
-t:能夠接文件系統格式,例如:ext二、ext三、ext四、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、文件系統類型及卷標;
7、磁盤掛載與卸載 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
8、設置開機掛載
設置開機掛載,須要修改/etc/fstab文件,這個文件內容共有六個字段,這六個字段很是重要,各字段的含義以下:
第一列:磁盤設備文件名或該設備的Label
第二列:掛載點
第三列:磁盤分區的文件系統
第四列:文件系統參數
第五列:是否被dump命令做用
第六列:是否以fsck檢查扇區
[root@lab02 /]#
vim /etc/fstab 在此文件後加如如下一行內容,便可實現開機掛載。
/dev/sdb5 /mydata ext4 defaults 0 0
總結:Linux 磁盤管理及基礎命令使用就先介紹到這裏了,本文主要介紹了磁盤的物理組成、磁盤的分區、文件系統的分類,磁盤分區命令fdisk、
mke2fs
、磁盤格式化命令mkfs、磁盤掛載命令mount、磁盤
卸載命令umout以及
開機自動掛載
的基本使用。但願對你們有所幫助哦。