本節所講內容:
• 認識 SAS-SATA-SSD-SCSI-IDE 硬盤
• 使用 fdisk 對磁盤進行操作,分區,格式化
• 開機自動掛載分區
• 使用 parted 操作大於等於 4T 硬盤
• 擴展服務器 swap 內存空間
硬盤管理
MBR( Master boot record : 主引導記錄)
【說明】:硬盤的 0 柱面、0 磁頭、1 扇區稱爲主引導扇區(也叫主引導記錄 MBR)。它由三個部分組成:主引導程序、硬盤分區表 DPT(Disk Partition table)和分區有效標誌(55AA)。
在總共 512 字節的主引導扇區裏主引導程序(boot loader)佔 446 個字節,第二部分是Partition table 區(分區表),即 DPT,佔 64 個字節,16*4=64,硬盤中分區有多少以及每一分區的大小都記在其中。第三部分是 magic number,佔 2 個字節,固定爲 55AA。其中 magic number:·結束標誌字,偏移地址 01FE--01FF 的 2 個字節值爲結束標誌 55AA,稱爲“魔數”(magic number)。如果該標誌錯誤系統就不能啓動。
添加磁盤
【主要步驟】:1 添加設備分區 2.格式化(創建文件系統) 3 創建掛載點 4 指定卷標 5自動掛載 6 測試
1 用 fdisk 進行分區
留了 8G 左右空間,(如果顯示沒有空閒的空間,則可以添加一塊新的硬盤到虛擬機中。)
#fdisk -l #查看磁盤信息
#fdisk /dev/sdb #創建/管理分區
m 獲得幫助
p 打印分區表
n 新建
p 主分區 ,e 擴展 ( 邏輯分區) #在 MBR 這樣分區表中,只有一個擴展分區,最多 4 個主分區
q退出
d刪除
w保存
【例】: 創建一個擴展分區,再創建一個邏輯分區
[root@localhost Desktop]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended toswitch off the mode (command 'c') and change display units tosectors (command 'u').
Command (m for help): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b8b35
Linux基礎之——硬盤分區及掛載
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Selected partition 4
First cylinder (1428 - 2610, default 1428):
Using default value 1428
Last cylinder, +cylinders or +size{K,M,G} (1428 - 2610, default 2610): +6G
Command (m for help): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b8b35
Linux基礎之——硬盤分區及掛載
Command (m for help): n
First cylinder (1428-2211, default 1428):
Using default value 1428
Last cylinder, +cylinders or +size{K,M,G} (1428-2211, default 2211): +2G
Command (m for help):p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b8b35
Linux基礎之——硬盤分區及掛載
Linux基礎之——硬盤分區及掛載
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource
busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
reboot#重啓
2 格式化
#mkfs.ext3 /dev/sda5 #格式化爲 ext3
#mkfs.ext4 /dev/sda5 #格式化爲 ext4
3 創建掛載點
[root@localhost Desktop]# mkdir /sda5
[root@localhost Desktop]# mount /dev/sda5 /sda5/
[root@localhost Desktop]#ls /sda5/
lost+found
查看:
[root@localhost Desktop]# df -h
Linux基礎之——硬盤分區及掛載
4 磁盤卷標
[root@localhost Desktop]# e2label /dev/sda1 #查看卷標
[root@localhost Desktop]# e2label /dev/sda5 home-4
創建一個卷標
5 開機自動掛載磁盤
修改配置文件:# vim /etc/fstab
Linux基礎之——硬盤分區及掛載
這裏最後兩個 0代表如下:
①.fs_dump 是否要使用 dump 命令進行備份. 0 爲不備份,1 爲要備份
②.fs_pass 該字段被 fsck 命令用來決定在啓動時是否需要被掃描的文件系統的順序,根文件系統/對應該字段的值應該爲 1,其他文件系統應該爲 2。若該文件系統無需在啓動 時掃描則設置該字段爲 0
mount -a #檢查 fstab 配置是否正確
每次在/etc/fstab 寫入文件,必須執行,防止掛載出錯,系統無法啓動
6 測試卸載並通過卷標掛載
1)卸載
[root@localhost Desktop]# umount /sda5/#卸載
或:
[root@localhost Desktop]# umount /dev/sda5
[root@localhost Desktop]# ls /sda5/
[root@localhost Desktop]#mount -a#檢查 fstab 配置是否正確
[root@localhost Desktop]# ls /sda5/
2)使用卷標開機自動掛載硬盤
[root@localhost Desktop]# e2label /dev/sda5
home-4
[root@localhost Desktop]# vim /etc/fstab
Linux基礎之——硬盤分區及掛載
[root@localhost Desktop]# mount -a
[root@localhost Desktop]# ls /sda5/
lost+found
uuid
UUID 作用
UUID 是一個標識你係統中的存儲設備的字符串,其目的是幫助使用者唯一的確定系統中的所有存儲設備,不管它們是什麼類型的。它可以標識 DVD 驅動器,USB 存儲設備以及你係統中的硬盤設備等。
特點
它是真正的唯一標誌符
Linux 中的許多關鍵功能現在開始依賴於 UUID
查看分區的 uuid 號
[root@localhost Desktop]# tune2fs -l /dev/sda2 | grep UUID
Filesystem UUID: ba5875b0-6c75-4c2f-a312-eb12e2a733a8
【例】:使用 UUID 掛載 sda1 分區
[root@localhost ~]# vim /etc/fstab #在最後添加以下內容
Linux基礎之——硬盤分區及掛載
[root@localhost Desktop]# mkdir /test1
高級掛載
【例】
[root@localhost]# mount -t ext4 /dev/sda5 /sda5/
[root@localhost]# mount -o loop rhel-6.2-x86_64.iso /media/
[root@localhost]# mount -o remount,ro /sda5/ #這個命令只有先掛載上,才能重新掛載
[root@localhost]# touch /sda5/aaa.txt
1)開機自動掛載光盤
[root@localhost Desktop]# vim /etc/fstab
Linux基礎之——硬盤分區及掛載
2)配置 yum 源
[root@localhost Desktop]# cat /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///mnt/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
3)卸載
#umount /dev/sdb1
#umount /opt
【例】:無法卸載
[root@localhost Desktop]# umount /sda5/
Umount: /sda5: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
【解決方法 1】:通過 lsof 命令 lsof(list open files)查看當前使用的進程
作用:查看哪些命令打開了當前系統的哪個文件。
語法:lsof 文件系統掛載點
[root@localhost ~]#lsof /opt/ #重點看後三列內容
Linux基礎之——硬盤分區及掛載
[root@localhost Desktop]# kill -9 2411 #根據 pid 號殺死進程
【解決方法 2】:通過 fuser 關閉進程。
[root@localhost Desktop]# fuser -m -u -v /sda5/
/sda5/: USER PID ACCESS COMMAND
root 3399 ..c.. (root)bash
root 3920 F.c.. (root)vim
-m 顯示進程 ID
-u顯示執行這個進程的用戶名
-v 詳細信息
GPT 分區
說明:GPT,全局唯一標識分區表(GUID Partition Table),GUID,與 MBR 最大 4 個分區表項的限制相比,GPT 對分區數量沒有限制,但 Windows 最大僅支持 128 個 GPT 分區。GPT 可管理硬盤大小達到了 18EB(1EB=1024PB=1,048,576TB),不過 NTFS 格式最大僅支持 256TB。
1Parted 磁盤分區工具的安裝
[root@localhost Desktop]# rpm -qf which parted
parted-2.1-17.el6.x86_64
2 獲取 parted 工具幫助的方法
(只需輸入 help 即可)
[root@localhost ~]# parted /dev/sdb
(parted) help
或[root@jetsen ~]# parted--help
3 退出 parted 工具
(只需輸入 quit 即可)
(parted) quit
4 查看所有磁盤狀態
[root@jetsen ~]#parted -l
5 開始通過 parted 工具來對磁盤進行操作
[root@jetsen ~]#parted /dev/sdb
(parted)p #輸入 p 查看磁盤是分區狀態
(parted)mklabel #創建分區表類型爲 gpt
New disk labeltype? gpt
(parted) mkpart #創建分區
Partition name? []? mydisk1
File system type? [ext2] --指定分區文件系統類型 ,定義分區類型。默認就可以了。因爲後期,我用使用 mkfs.ext4 格式化
Start? 1 ---指定開始位置
End? 100M---指定結束位置
(parted) P ----顯示分區信息
(parted)mkpart
Partition name? []?2
File system type? [ext2]?
Start?100M
End? 200M
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Linux基礎之——硬盤分區及掛載
(parted)quit ---退出
6 格式化
[root@localhost Desktop]# mkfs.ext4 /dev/sdc1
[root@localhost Desktop]# mount /dev/sdc1 /sdc1/
7 刪除
[root@jetsen ~]#parted /dev/sdc
[root@jetsen ~]#parted /dev/sde
(parted)P ----顯示分區信息
(parted) rm 2 #這個地方寫對應的分區號就可以了。
(parted) quit
如果需要重啓就重啓一下。
擴展 swap 分區
1 新建 swap 分區
添加一個硬盤 sdb,然後創建一個普通分區: sda1 大小,1000M
mkswap /dev/sdb1 #格式化 sdb1 分區爲 swap 格式
swapon /dev/sdb1 #啓動 swap 分區
#vim /etc/fstab #開機自動掛載 ,擴展的 swap 分區 ,添加以下內容:
Linux基礎之——硬盤分區及掛載
【說明】:只有重啓才能生效,mount –a 無法自動擴展 swap 分區的。
swapoff /dev/sdb1 #關閉 swap 分區
重啓後查看
2 查看命令
free –m //查看 swap 分區大小
作業:多練習今天講到的知識點。熟練掌握!