什麼是硬盤:
硬盤是由一個密封的真空盒子。真空盒子內有“盤片”、“機械臂”“磁頭”“馬達”組成。---->如圖所示
磁頭是在機械臂末梢位置,懸浮在盤面上方几微米處。硬盤式通過磁頭接觸在高速旋轉的盤面上進行讀寫數據。磁頭的默認位置在盤面的最邊緣部位。
現如今的硬盤幾乎都是雙面的,即,單盤片的硬盤有2個磁頭,雙盤片的硬盤有4個磁頭。並且機械臂的分支都是固定的,同一時刻位於不同盤面的磁頭
處於同一垂直位置。
常見的硬盤接口及接口速率:
並行接口:
IDE接口 理論接口速率133MB/s
SCSI接口 理論接口速率640MB/s
串行接口:
SATA接口 理論接口速率6Gbps/s
SAS接口 理論接口速率6Gbps/s
USB接口 理論接口速率480MB/s
磁盤管理的相關術語:
磁頭在高速旋轉的盤面所畫出的n個同心圓被稱爲:磁道 (track)
不同盤面上相同大小的同心圓組成:柱面 (Cylinder)
由圓心出發的直線將磁道切割成n段弧線,每一段稱爲一個:扇區 (Sector) ---------磁盤的第一個磁道的第一個扇區爲MBR(Master Boot Record),大小爲512Byte
MBR的前446Bytes爲boot loader,接下來的64Bytes爲磁盤分區列表信息,每個分區佔16Byte。剩下的2Bytes爲MBR有效標識位
硬盤在/dev目錄下的文件名:
/dev/sda ~ /dev/sdz 由 /dev/sd開頭,[a-z]表示硬盤的序號,a表示第一塊硬盤
/dev/sda1 表示第一塊磁盤的第一個分區,以此類推。
因爲每個分區信息佔用16Bytes,MBR中分區信息總共佔有16Bytes,所以每個硬盤最多可劃分4個主分區,若想劃分更多的分區,必須有一個條目信息指定當前硬盤中的其他位置存貯分區信息,這個條目便是擴展分區條目。
因此可將硬盤劃分爲3個主分區一個擴展分區,在擴展分區中可劃分n個邏輯分區。沒快硬盤中只能存在一個擴展分區。
所以,分區編號中,1-4爲主分區和擴展分區。5以上的數字表示邏輯分區。
注意:centos5以及以前版本,並行接口的硬盤設備在/dev/下的文件名爲/dev/hd開頭,在CentOS6以及以後的版本都爲/dev/sd開頭。
什麼是文件系統:
要實現在一個龐大的存儲空間中快速定位數據的位置,那麼需要有一種將磁盤劃分n個小單元,並且將n個小單元分成元數據區和數據區的機制。元數據區域存放數據的名稱,存放位置等信息。而實現這種機制的軟件便是文件系統。
查看當前系統所支持的文件系統:(CentOS-7)
[root@localhost ~]# cat /proc/filesystems ##proc/filesystems:系統已經加載的文件系統類型 nodev sysfs nodev rootfs nodev bdev nodev proc nodev cgroup nodev cpuset nodev tmpfs nodev devtmpfs nodev debugfs nodev securityfs nodev sockfs nodev pipefs nodev anon_inodefs nodev configfs nodev devpts nodev ramfs nodev hugetlbfs nodev autofs nodev pstore nodev mqueue nodev selinuxfs xfs btrfs [root@localhost ~]#
Linux系統所支持的文件系統格式衆多。常見的文件系統格式有: ext2, ext3, ext4, xfs, btrfs,swap
CentOS7相對CentOS6新增了btrfs格式的文件系統,其優點是其容量的可擴展性。這也是CentOS7逐漸拋棄了LVM的原因。
分區格式化工具: (fdisk )
[root@localhost ~]# fdisk -l ##顯示當前系統所有磁盤的所有分區 Disk /dev/sda: 236.2 GB, 236223201280 bytes, 461373440 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000977ad Device Boot Start End Blocks Id System /dev/sda1 * 2048 411647 204800 83 Linux /dev/sda2 411648 10897407 5242880 83 Linux /dev/sda3 10897408 21383167 5242880 83 Linux /dev/sda4 21383168 461373439 219995136 5 Extended /dev/sda5 21385216 25579519 2097152 82 Linux swap / Solaris /dev/sda6 25581568 36067327 5242880 83 Linux /dev/sda7 36069376 38166527 1048576 83 Linux [root@localhost ~]# fdisk /dev/sda ##管理第一塊磁盤 Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): ##可在此處輸入命令
此命令爲一個交互式命令行,命令常用選項有:
m 或 help 表示獲取幫助信息
n 創建新分區
d 刪除分區
l 列出支持的分區類型
p 顯示當前磁盤上的分區
t 修改分區類型,使用分區編號
w 保存退出
q 不做更改退出交互會話
例如,當前我的磁盤有1個磁盤,sda上面有7個分區,新建分區具體步驟如下:
[root@localhost ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): n All primary partitions are in use Adding logical partition 8 First sector (38168576-461373439, default 38168576): ##指定分區的起始位置,默認就行 Using default value 38168576 Last sector, +sectors or +size{K,M,G} (38168576-461373439, default 461373439): +1G ##指定分區的結束位置,可以是扇區編號,“+1G” 代表明確指定劃分1G空間給當前分區 Partition 8 of type Linux and of size 1 GiB is set Command (m for help): w ##保存當前修改並退出交互會話
至此新分區已創建成功,但內核至此還未能識別出新分區,需要使用命令:
[root@localhost ~]# partx -a /dev/sda ##無需關注命令報錯,此命令需要重複執行兩次 或 [root@localhost ~]# kpartx -a /dev/sda ##無需關注命令報錯,此命令需要重複執行兩次CentOS 5: 使用 [root@localhost ~]# partprobe /dev/sda [root@localhost ~]# cat /proc/partitions ##查看當前系統所識別出的分區 major minor #blocks name 8 0 230686720 sda 8 1 204800 sda1 8 2 5242880 sda2 8 3 5242880 sda3 8 4 1 sda4 8 5 2097152 sda5 8 6 5242880 sda6 8 7 1048576 sda7 8 8 1048576 sda8
至此新分區已創建成功,下一步則是對新分區進行格式化:創建文件系統 (mkfs)
mkfs的常用選項:
-t <Type> 指明文件系統類型:ext2 ext3 ext4 ..
-L ’Label Name‘ 爲該文件系統創建卷標,方便以後的調用
mkfs [options] [-t <type>] [fs-options] <device> [<size>] ## 命令格式 [root@localhost ~]# mkfs -t ext3 /dev/sda8 ##創建ext3格式的文件系統 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done ##創建成功
[root@localhost ~]# blkid /dev/sda8 ##blkid查看文件系統信息 /dev/sda8: UUID="ecdac9ea-f9d5-4950-aee3-122e8845eb48" TYPE="ext2"
至此,新分區創建以及格式化已完成。若需訪問該文件系統,需將該分區掛在至根目錄下的某個節點進行訪問。
磁盤管理的常用命令彙總:
我們可以在命令行模式下輸入mkfs雙擊tab鍵,如下:
[root@localhost ~]# mkfs mkfs mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.minix mkfs.xfs [root@localhost ~]# mkfs
諸如mkfs.ext3,實際上,我們使用mkfs -t ext3 DEVICE的時候就相當於調用了mkfs.ext3這條命令,因此,此處顯示的各條命令的用法和mkfs一樣。
tune2fs 重新設定“ext系列”文件系統的可調整參數 -l查看指定文件系統的超級快信息 -L修改卷標 -m修改預留給管理的百分比 -j將ext2升級爲ext3 -O文件系統屬性的啓用或禁用(^) -o調整文件系統的默認掛載選項 -U UUID 修改UUID 例如: [root@localhost ~]# mkfs.ext2 /dev/sda8 ##將當前分區格式化爲ext2格式 [root@localhost ~]# blkid /dev/sda8 ##顯示當前分區信息爲ext2格式 /dev/sda8: UUID="230890b5-7c14-44c0-a675-4f4c4225a1d1" TYPE="ext2" [root@localhost ~]# tune2fs -j -L 'My Data' -m 3 /dev/sda8 ## tune2fs 1.42.9 (28-Dec-2013) Setting reserved blocks percentage to 3% (7864 blocks) Creating journal inode: done [root@localhost ~]# blkid /dev/sda8 ##由以下信息可見,修改的屬性已生效,類型改爲ext3,新增了卷標“My Data” /dev/sda8: LABEL="My Data" UUID="230890b5-7c14-44c0-a675-4f4c4225a1d1" SEC_TYPE="ext2" TYPE="ext3"
文件系統修復命令:
fsck ,常用選項:
-a自動修復錯誤
-r交互式修復錯誤
e2fs ext系列文件系統專用的檢測修復工具
-y自動回答爲yes
-f強制修復
注意::-t 指定的文件系統類型必須與分區上已有的文件類型相同
例如:
[root@localhost ~]# fsck -t ext3 -a /dev/sda8 ## 若需要強制修復則使用-f選項 fsck from util-linux 2.23.2 My_Data: clean, 11/65536 files, 12644/262144 blocks
待續~~~~~~~