Linux基礎之——硬盤分區及掛載

本節所講內容:

• 認識 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 分區大小

作業:多練習今天講到的知識點。熟練掌握!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章