Hard Disk Drive,即是傳統普 通硬碟,主要由:碟片,磁頭,碟片轉軸及控制電 機,磁頭控制器,資料轉換器,介面,快取等幾個部 分組成。機械硬碟中所有的碟片都裝在一個旋轉軸 上,每張碟片之間是平行的,在每個碟片的儲存面上有一個磁頭,磁頭與碟片之間的距離比頭髮絲的直 徑還小,所有的磁頭聯在一個磁頭控制器上,由磁頭 控制器負責各個磁頭的運動。磁頭可沿碟片的半徑 方向運動,加上碟片每分鐘幾千轉的高速旋轉,磁頭 就可以定位在碟片的指定位置上進行資料的讀寫操 作。資料通過磁頭由電磁流來改變極性方式被電磁流 寫到磁碟上,也可以通過相反方式讀取。硬碟為精 密裝置,進入硬碟的空氣必須過濾
Solid State Drive,用固態電子存 儲晶片陣列而製成的硬碟,由控制單元和儲存單 元(FLASH晶片、DRAM晶片)組成。固態硬碟在接 口的規範和定義、功能及使用方法上與普通硬碟的 完全相同,在產品外形和尺寸上也與普通硬碟一致
[root@localhost ~]# ll /dev/sd*
#此處的8代表裝置的型別 8後的數位代表第幾類的 第幾塊裝置
brw-rw----. 1 root disk 8, 0 8月 1 08:49 /dev/sda
brw-rw----. 1 root disk 8, 1 8月 1 08:49 /dev/sda1
brw-rw----. 1 root disk 8, 2 8月 1 08:49 /dev/sda2
是作業系統用於明確儲存裝置或分割區上的檔案的使用方 法和資料結構;即在儲存裝置上組織使用檔案的 方法。作業系統中負責管理和儲存檔案資訊的軟體結構 稱為檔案管理系統,簡稱檔案系統 從系統角度來看,檔案系統是對檔案儲存裝置的空間進行組織和分配,負責檔案儲存並對存入的檔案進 行保護和檢索的系統。具體地說,它負責為使用者建立文 件,存入、讀出、修改、轉儲檔案,控制檔案的 存取,安全控制,紀錄檔,壓縮,加密等。
總結:用來管理(增刪改查恢復)檔案的程式
[root@localhost ~]# cat /proc/filesystems //檢視當前系統支援的檔案型別
nodev sysfs
nodev rootfs
nodev ramfs
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 hugetlbfs
nodev autofs
nodev pstore
nodev mqueue
nodev selinuxfs
xfs
nodev rpc_pipefs
nodev nfsd
fuseblk
nodev fuse
nodev fusectl
iso9660
NTFS檔案系統所具備3個功能:錯誤預警功能、磁碟自 我修復功能和紀錄檔功能,單個檔案64GB
fdisk -l [磁碟裝置] //非互動式檢視磁碟分割區
fdisk [磁碟裝置] //互動式檢視和管理磁碟分割區
[root@localhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 8, 0 8月 1 08:49 /dev/sda
brw-rw----. 1 root disk 8, 1 8月 1 08:49 /dev/sda1
brw-rw----. 1 root disk 8, 2 8月 1 08:49 /dev/sda2
[root@localhost ~]# fdisk -l /dev/sda
磁碟 /dev/sda:64.4 GB, 64424509440 位元組,125829120 個磁區
Units = 磁區 of 1 * 512 = 512 bytes
磁區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0x0009766d
裝置 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 125829119 61864960 8e Linux LVM
指令 | 作用 |
m | 列印出選單 |
p | 列印出當前分割區表 |
n | 新建一個分割區 |
d | 刪除一個分割區 |
t | 改變分割區的屬性,系統ID |
w | 儲存 |
q | 不儲存退出 |
[root@localhost ~] # fdisk /dev/sda
歡迎使用 fdisk (util-linux 2.23.2)。
更改將停留在記憶體中,直到您決定將更改寫入磁碟。
使用寫入命令前請三思。
命令(輸入 m 獲取幫助):m //m指令列印出選單
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
可以檢視塊裝置屬性資訊
範例
[root@localhost ~]# blkid
/dev/sda1: UUID="1003453c-ed08-492a-bac5-76fd0e006c5d" TYPE="xfs"
/dev/sda2: UUID="4zS7ZS-vwuG-OXJz-rvsT-zmn9-pszq-u5Wqd7" TYPE="LVM2_member"
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/centos-root: UUID="dbfa8769-3674-4dca-9ea2-ce4d5d08a176" TYPE="xfs"
/dev/mapper/centos-swap: UUID="cc343a9d-2526-43ec-ae59-a927a4c8e9ec" TYPE="swap"
/dev/mapper/centos-home: UUID="fe129d06-2d94-456a-b126-728f0c61d9db" TYPE="xfs"
建立檔案系統(格式化)常用選項
[root@localhost ~]# ls /sbin/mkfs* //檢視當前系統支援哪些檔案系統型別
/sbin/mkfs /sbin/mkfs.ext2 /sbin/mkfs.fat /sbin/mkfs.vfat
/sbin/mkfs.btrfs /sbin/mkfs.ext3 /sbin/mkfs.minix /sbin/mkfs.xfs
/sbin/mkfs.cramfs /sbin/mkfs.ext4 /sbin/mkfs.msdos
[root@localhost ~]# mkfs.xfs /dev/sdb1 //將sdb1格式化為XFS檔案系統
meta-data=/dev/sdb3 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#檔案系統檢測和修復
fsck.FS_TYPE
fsck -t FS_TYPE
-a 自動修復
-r 互動式修復錯誤
swap
特殊的檔案系統,緩解記憶體不足,為了個別應為程式加 記憶體有點浪費
[root@localhost ~]# mkswap /dev/sdb6 //將sdb6格式化為swap檔案系統
正在設定交換空間版本 1,大小 = 6289404 KiB
無標籤,UUID=2b59e021-35a5-489a-9450-849917a9850a
[root@localhost ~]# swapon -s //顯示所有啟用的交換分割區,目前只顯示系統原有的交換分割區
檔名 型別 大小 已用 許可權
/dev/dm-1 partition 4194300 0 -1
[root@localhost ~]# swapon /dev/sdb6 //啟用交換分割區
[root@localhost ~]# swapon -s //此時檢視,顯示了剛剛啟用的交換分割區
檔名 型別 大小 已用 許可權
/dev/dm-1 partition 4194300 0 -1
/dev/sdb6 partition 6289404 0 -2
[root@localhost ~]# swapoff /dev/sdb6 //不使用後可以停用交換分割區
[root@localhost ~]# swapon -s //檢視所有交換分割區,/dev/sdb6已不顯示
檔名 型別 大小 已用 許可權
/dev/dm-1 partition 4194300 0 -1
[root@localhost ~]# lsblk -d -o name,rota
#檢視當前硬碟是什麼模式 固態 機械 1 機械 0 固態
NAME ROTA
sda 1
sr0 1
mount [ -t 型別 ] 儲存裝置 掛載點目錄 mount -o loop ISO映象檔案 掛載點目錄
範例
[root@localhost data]# mount /dev/sdb1 /opt/aa //將sdb1掛載到aa目錄下
[root@localhost ~]# df -h //檢視磁碟情況,已成功掛載
檔案系統 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 10G 4.9G 5.2G 49% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 9.1M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 183M 0 183M 0% /run/user/0
tmpfs 183M 40K 183M 1% /run/user/1005
/dev/sr0 4.3G 4.3G 0 100% /run/media/Amy/CentOS 7 x86_64
/dev/sdb1 10G 33M 10G 1% /opt/aa
umount 儲存裝置位置
umount 掛載點目錄
範例
[root@localhost opt]# umount /dev/sdb1 //將sdb1解除掛載
[root@localhostopt]# df -h //檢視磁碟情況,已成功解掛載
檔案系統 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 10G 4.9G 5.2G 49% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 9.1M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 183M 0 183M 0% /run/user/0
tmpfs 183M 40K 183M 1% /run/user/1005
需要將檔案寫入 /etc/fstab
UUID 可以確保唯一
範例
[root@localhost ~]# vim /etc/fstab //修改組態檔 #將sdb1加入組態檔 UUID=e0b714cd-c33e-42b2-a051-1e1f3333b4b7 /data/aa xfs defaults 0 0
以 「/dev/mapper/centos-root / xfs defaults 0 0」 為例
- 欄位1:裝置名或裝置卷標名、或裝置的UUID(建議使用UUID,可使用lsbik命令檢視)。
- 欄位2:檔案系統的掛載點目錄的位置。
- 欄位3:檔案系統型別,如 XFS、swap 等。
- 欄位4:掛載引數,即 mount 命令」-o「選項後可使用的引數。例如,default、rw、ro、noexec 分別表示為預設引數、可讀可寫、唯讀、禁用執行程式。
- 欄位5:表示檔案系統是否需要 dump 備份(dump是一個備份工具)。一般設為1時表示需要,設為0時將被dump忽略。
- 欄位6:該數位決定在系統啟動時進行磁碟檢查的順序。0表示不進行檢查, 1表示優先檢查,2表示其次檢查。根分割區可設為1,其他分割區設定為2。一般不進行檢查,會影響系統效能。
新加硬碟後,需要重新整理磁碟介面,讓系統識別新硬碟。命令如下:
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host2/scan
[root@localhost ~]# lsblk //檢視塊裝置,已識別到新硬碟sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 14G 0 part
├─centos-root 253:0 0 10G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sr0 11:0 1 4.2G 0 rom
[root@localhost ~]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.23.2)。
更改將停留在記憶體中,直到您決定將更改寫入磁碟。
使用寫入命令前請三思。
Device does not contain a recognized partition table
使用磁碟識別符號 0x8fd606b5 建立新的 DOS 磁碟標籤。
命令(輸入 m 獲取幫助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分割區號 (1-4,預設 1):
起始 磁區 (2048-125829119,預設為 2048):
將使用預設值 2048
Last 磁區, +磁區 or +size{K,M,G} (2048-125829119,預設為 125829119):+10G
分割區 1 已設定為 Linux 型別,大小設為 10 GiB
命令(輸入 m 獲取幫助):N
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
分割區號 (2-4,預設 2):
起始 磁區 (20973568-125829119,預設為 20973568):
將使用預設值 20973568
Last 磁區, +磁區 or +size{K,M,G} (20973568-125829119,預設為 125829119):+10G
分割區 2 已設定為 Linux 型別,大小設為 10 GiB
命令(輸入 m 獲取幫助):N
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p):
Using default response p
分割區號 (3,4,預設 3):
起始 磁區 (41945088-125829119,預設為 41945088):
將使用預設值 41945088
Last 磁區, +磁區 or +size{K,M,G} (41945088-125829119,預設為 125829119):+10G
分割區 3 已設定為 Linux 型別,大小設為 10 GiB
命令(輸入 m 獲取幫助):
命令(輸入 m 獲取幫助):N
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e):
Using default response e
已選擇分割區 4
起始 磁區 (62916608-125829119,預設為 62916608):
將使用預設值 62916608
Last 磁區, +磁區 or +size{K,M,G} (62916608-125829119,預設為 125829119):+10G
分割區 4 已設定為 Extended 型別,大小設為 10 GiB
命令(輸入 m 獲取幫助):W
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁碟。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 59G 0 part
├─centos-root
253:0 0 38.3G 0 lvm /
├─centos-swap
253:1 0 2G 0 lvm [SWAP]
└─centos-home
253:2 0 18.7G 0 lvm /home
sdb 8:16 0 60G 0 disk
├─sdb1 8:17 0 10G 0 part
├─sdb2 8:18 0 10G 0 part
├─sdb3 8:19 0 10G 0 part
└─sdb4 8:20 0 1K 0 part
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=1
[root@localhost ~]# mkswap /dev/sdb2 //將sdb6格式化為swap檔案系統
正在設定交換空間版本 1,大小 = 6289404 KiB
無標籤,UUID=2b59e021-35a5-489a-9450-849917a9850a
[root@localhost ~]# swapon -s //顯示所有啟用的交換分割區,目前只顯示系統原有的交換分割區
檔名 型別 大小 已用 許可權
/dev/dm-1 partition 4194300 0 -1
[root@localhost ~]# swapon /dev/sdb2 //啟用交換分割區
[root@localhost ~]# swapon -s //此時檢視,顯示了剛剛啟用的交換分割區
檔名 型別 大小 已用 許可權
/dev/dm-1 partition 4194300 0 -1
/dev/sdb2 partition 6289404 0 -2
[root@localhost ~]# swapoff /dev/sdb2 //不使用後可以停用交換分割區
[root@localhost ~]# swapon -s //檢視所有交換分割區,/dev/sdb6已不顯示
檔名 型別 大小 已用 許可權
/dev/dm-1 partition 4194300 0 -1
新建/data目錄,之後建子目錄aa
方式一:使用mount命令一次性掛載
[root@localhost /]# mkdir /data //建立/data目錄
[root@localhost /]# cd /data
[root@localhost data]# mkdir aa //在/data目錄下建立子目錄aa
[root@localhost data]# ls
aa
[root@localhost opt]# mount /dev/sdb1 /data/aa //將sdb1掛載到aa目錄下
[root@localhost ~]# df -Th //檢視磁碟情況並顯示檔案系統型別,可看到已成功掛載
檔案系統 型別 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root xfs 10G 4.9G 5.2G 49% /
devtmpfs devtmpfs 897M 0 897M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.1M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
tmpfs tmpfs 183M 0 183M 0% /run/user/0
tmpfs tmpfs 183M 40K 183M 1% /run/user/1005
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/Amy/CentOS 7 x86_64
/dev/sdb1 xfs 10G 33M 10G 1% /opt/aa