好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Linux磁盤設備與LVM管理命令示例詳解

Linux磁盤設備與LVM管理命令示例詳解

熱門標簽:地圖標注黃河的位置 地圖標注如何改成微信號 400電話號碼辦理多少錢 山東企業外呼系統公司 百度地圖標注公司位置要多少錢 虛假地圖標注 靈圖uu電子寵物店地圖標注 承德地圖標注公司 濮陽好的聯通400電話申請

前言

在 Linux 操作系統中, 設備文件 是一種特殊類型的文件。這些文件絕大多數位于 /dev 目錄下,用來表示 Linux 主機檢測到的某個具體的硬件設備。

比如 /dev/sda 文件通常用來指代系統中的第一塊硬盤。

Linux 操作系統及其應用與服務則通過這些設備文件與對應的硬件設備進行交互。

對于常見的磁盤(ATA、SATA、SCSI、SAS、SSD 等)和優盤等塊存儲設備,其設備文件主要以 sd* 的形式命名。如 sda 表示第一塊硬盤, sdb2 表示第二塊硬盤的第二個分區,以此類推。

因此,可直接使用 ls -l /dev/sd* 命令查看系統中的磁盤設備:

$ ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 8月 7 00:47 /dev/sda
brw-rw---- 1 root disk 8, 1 8月 7 00:47 /dev/sda1

即當前系統中只連接了一塊硬盤( /dev/sda ),且該硬盤只有一個分區( /dev/sda1 )。

二、分區

分區可以理解為將一整塊硬盤劃分為一個或多個相互獨立的存儲區域。

比如可以將系統的第一塊硬盤劃分為 3 個分區,分別為 sda1、sda2、sda3 。sda1 用于掛載根目錄( / ),sda2 掛載 /var ,sda3 掛載 /home 目錄。則即使 /var 目錄下的日志文件等占用了 sda2 全部的存儲空間,也不會影響其他兩個分區的使用。

可以使用 fdisk -l 命令查看系統中的磁盤和分區信息:

$ sudo fdisk -l
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x20985120

Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 20964824 20962777 10G 83 Linux

創建磁盤分區

fdisk 命令還可以用來對硬盤進行分區操作,包括創建新分區、刪除已有的分區、創建分區表等。

我這里通過 VirtualBox 軟件為虛擬機中的 Linux 系統添加了一塊空白的虛擬硬盤。使用 fdisk -l 命令查看系統檢測到的硬盤設備:

$ sudo fdisk -l
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x20985120

Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 20964824 20962777 10G 83 Linux


Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

此時系統中多了一塊不包含任何分區的新硬盤 /dev/sdb 。

使用 fdisk /dev/sdb 命令對新硬盤進行分區操作:

$ sudo fdisk /dev/sdb

Welcome to fdisk (util-linux 2.33.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xce119026.

Command (m for help): m

Help:

 DOS (MBR)
 a toggle a bootable flag
 b edit nested BSD disklabel
 c toggle the dos compatibility flag

 Generic
 d delete a partition
 F list free unpartitioned space
 l list known partition types
 n add a new partition
 p print the partition table
 t change a partition type
 v verify the partition table
 i print information about a partition

 Misc
 m print this menu
 u change display/entry units
 x extra functionality (experts only)

 Script
 I load disk layout from sfdisk script file
 O dump disk layout to sfdisk script file

 Save & Exit
 w write table to disk and exit
 q quit without saving changes

 Create a new label
 g create a new empty GPT partition table
 G create a new empty SGI (IRIX) partition table
 o create a new empty DOS partition table
 s create a new empty Sun partition table

進入 fdisk 程序界面之后,按下 m 鍵并回車,即可打印幫助信息,獲取該界面下支持的交互式命令。

比如輸入 p 可以用來輸出當前硬盤的分區信息,輸入 n 創建新的分區,輸入 d 刪除已有的分區。

在對分區進行任何操作之后,最后都需要使用 w 將之前的所有更改寫入硬盤。

這里先按下 n 開始新分區的創建,根據提示選擇分區類型( p 表示主分區, e 表示擴展分區),進一步選擇分區編號和第一個扇區的位置(一般默認即可),最后輸入新分區中最后一個扇區的位置(也可以直接指定分區大小),格式為 +/-sectors 或 +/-size 。如輸入 +3G 則表示創建大小為 3 GB 的新分區。具體步驟如下:

Command (m for help): n
Partition type
 p primary (0 primary, 0 extended, 4 free)
 e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-10485759, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-10485759, default 10485759): +3G

Created a new partition 1 of type 'Linux' and of size 3 GiB.

Command (m for help): n
Partition type
 p primary (1 primary, 0 extended, 3 free)
 e extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2):
First sector (6293504-10485759, default 6293504):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (6293504-10485759, default 10485759):

Created a new partition 2 of type 'Linux' and of size 2 GiB.

再用同樣的步驟將磁盤的剩余空間劃分為另一個分區。此時查看分區信息,原本空白的 5GB 新硬盤 sdb 已經被劃分為兩個分區 sdb1 和 sdb2 :

Command (m for help): p
Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xce119026

Device Boot Start End Sectors Size Id Type
/dev/sdb1  2048 6293503 6291456 3G 83 Linux
/dev/sdb2 6293504 10485759 4192256 2G 83 Linux

需要注意的是,如果此時按下 q 按鍵直接退出 fdisk 程序,則之前所做的全部操作都不會被保存。

如確認前面對硬盤的操作沒有問題,應使用 w 命令將新的分區信息寫入到磁盤中。類似于編輯文件時的保存并退出。

三、文件系統

可以將磁盤等存儲設備看作一個小型的圖書館,存放在其中的書籍即硬盤中的數據,而分區的作用類似于對書籍分門類存放的書架,形成相對獨立的區域。

但是書架上的書籍并不是隨意放置的,每本書都需要根據一定的規則和順序有規律地擺放,有時還要記錄下擺放的具體位置。這些書籍的擺放規則即對應于分區上的 文件系統 。

文件系統是對存儲設備的空間進行組織和分配,負責文件存取并對存入的文件進行保護和檢索的系統。對操作系統而言,文件的讀寫不會直接作用于硬盤扇區,而是通過文件系統以特定的規則處理和組織文件數據。

常見的文件系統如 Windows 中的 NTFS 和 Linux 系統中 Ext4 等。

在 Windows 系統中,通常所說的“分區”操作即包含了創建分區并建立文件系統的過程。而在 Linux 系統中,這兩步操作則需要兩個獨立的命令完成。

可以使用 mkfs.ext4 /dev/sdb1 命令,在之前新加硬盤的第一個分區上創建 Ext4 格式的文件系統。

$ sudo mkfs.ext4 /dev/sdb1
mke2fs 1.44.6 (5-Mar-2019)
Creating filesystem with 786432 4k blocks and 196608 inodes
Filesystem UUID: d5e21599-12e9-44da-ae51-124d89fe5eda
Superblock backups stored on blocks:
 32768, 98304, 163840, 229376, 294912

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

交換分區

Linux 系統中的 swap 分區可以看作位于硬盤上的“內存設備”。Linux 會將內存中一部分不需要立即使用的數據臨時交換至硬盤上的 swap 分區,以緩解內存不足等情況。

我的 Linux 虛擬機安裝時并沒有分配 swap 分區,這里通過 mkswap 命令將 2G 大小的 sdb2 分區劃分為 swap 空間:

$ sudo mkswap /dev/sdb2
Setting up swapspace version 1, size = 2 GiB (2146430976 bytes)
no label, UUID=47006330-810c-4321-8d73-d52a5f70bc88

然后使用 swapon 命令立即啟用前面創建的 swap 分區:

$ sudo swapon /dev/sdb2
$ free -h
  total used free shared buff/cache available
Mem:  983Mi 223Mi 168Mi 4.0Mi 590Mi 597Mi
Swap:  2.0Gi  0B 2.0Gi

分區掛載

在 Windows 系統中,一般插入一個已經分好區的硬盤或優盤之后,會自動為添加的一個或多個分區分配 盤符 (如 D:、E:、F: 等),之后就可以直接通過盤符在新分區上讀取或寫入文件了。

Linux 系統中沒有盤符的概念,它的文件層次是一個從根目錄( / )開始的樹狀結構(目錄),一直向下延申,每一個分支都是一條具體的路徑,指向某個特定的文件。比如 /usr 、 /root 、 /var 、 /var/log 等。

目錄可以說是獨立于硬件存儲設備的抽象的邏輯結構,用于指定文件系統層次中的某個具體位置。而磁盤分區與目錄結構的對應關系,則需要通過 掛載 來指定。

一般在安裝系統時,可以將 sda1 分區掛載到根目錄下,則該目錄下的所有文件之后都將保存在 sda1 上。如果后面又添加了一塊新的數據盤 sdb,該硬盤只有一個分區 sdb1。為了將某些文件保存在 sdb1 分區上,可以在目錄樹中新建一個空白分支(比如 /mnt/data )并將 sdb1 掛載在該分支下。之后 /mnt/data 目錄下創建的任何子目錄和文件等數據都會保存在 sdb1 上。

具體命令如下:

$ sudo mkdir -p /mnt/data
$ sudo mount /dev/sdb1 /mnt/data

使用 df -h 命令查看文件系統占用的磁盤空間的具體情況:

$ df -h
Filesystem Size Used Avail Use% Mounted on
udev  456M 0 456M 0% /dev
tmpfs  99M 1.1M 98M 2% /run
/dev/sda1 9.8G 5.2G 4.2G 56% /
tmpfs  492M 0 492M 0% /dev/shm
tmpfs  5.0M 4.0K 5.0M 1% /run/lock
tmpfs  492M 0 492M 0% /sys/fs/cgroup
tmpfs  99M 0 99M 0% /run/user/117
tmpfs  99M 0 99M 0% /run/user/1000
/dev/sdb1 2.9G 9.0M 2.8G 1% /mnt/data

可以看到新添加的分區 /dev/sdb1 已經掛載到 /mnt/data 目錄下了。

或者也可以使用 lsblk 命令查看塊存儲設備(即磁盤和分區)的容量和掛載點:

$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
└─sda1 8:1 0 10G 0 part /
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 3G 0 part /mnt/data
└─sdb2 8:18 0 2G 0 part [SWAP]
sr0 11:0 1 1024M 0 rom

需要注意的是,手動掛載的分區在系統重啟以后會自動卸載。如果想像根目錄那樣,每次系統啟動時自動掛載分區,可以修改 /etc/fstab 配置文件,示例內容如下:

# <file system>    <mount point> <type> <options> <dump> <pass>
UUID=f3435713-b2cd-4196-b07b-2ffb116a028d /  ext4 defaults 0 1
/dev/sdb1     /mnt/data ext4 defaults 0 1
/dev/sdb2     none  swap sw  0 0

PS:相對于 /dev/sda1 這種形式,使用 UUID 掛載分區往往更保險一點,可以通過 blkid 命令查看磁盤分區的 UUID:

$ sudo blkid
/dev/sda1: UUID="f3435713-b2cd-4196-b07b-2ffb116a028d" TYPE="ext4" PARTUUID="20985120-01"
/dev/sdb1: UUID="d5e21599-12e9-44da-ae51-124d89fe5eda" TYPE="ext4" PARTUUID="ce119026-01"
/dev/sdb2: UUID="47006330-810c-4321-8d73-d52a5f70bc88" TYPE="swap" PARTUUID="ce119026-02"

四、LVM(邏輯卷管理)

對于不包含 邏輯卷管理 (LVM)的磁盤分區方案,分區的位置、大小和數量一般都是固定的,從而導致擴展當前分區和添加新分區等操作變得困難。

此時若添加額外的硬盤和分區,則需要在目錄樹中創建新的分支作為掛載點,文件數據分散到多個復雜的位置上,不便于合并、備份和管理數據。

LVM 允許將單個或多個分區合并為一個邏輯卷組,且其中包含的邏輯卷可以 動態 地添加、改變大小或刪除。

LVM 系統最底層為物理卷(pv),即磁盤、分區和 RAID 陣列等。物理卷可以用來創建邏輯卷組(vg),而邏輯卷組又可以包含任意數量的邏輯卷(lv),邏輯卷從功能上即對應于物理磁盤上的分區。

創建卷組和邏輯卷

可以使用 pvcreate 命令將某個存儲設備(磁盤或分區等)標記為物理卷。

這里我通過 VirtualBox 添加了另一塊大小為 5G 的空白的虛擬硬盤,系統檢測到該設備為 /dev/sdc :

$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
└─sda1 8:1 0 10G 0 part /
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 3G 0 part /mnt/data
└─sdb2 8:18 0 2G 0 part [SWAP]
sdc 8:32 0 5G 0 disk
sr0 11:0 1 1024M 0 rom

創建物理卷:

$ sudo pvcreate /dev/sdc
 Physical volume "/dev/sdc" successfully created.

通過 pvs 命令列出所有的物理卷:

$ sudo pvs
 PV  VG Fmt Attr PSize PFree
 /dev/sdc lvm2 --- 5.00g 5.00g

通過 vgcreate 命令在物理卷的基礎上創建邏輯卷組:

$ sudo vgcreate data-volume /dev/sdc
 Volume group "data-volume" successfully created

使用 vgs 命令列出當前所有的邏輯卷組:

$ sudo vgs
 VG  #PV #LV #SN Attr VSize VFree
 data-volume 1 0 0 wz--n- <5.00g <5.00g

使用 lvcreate 命令在卷組中創建邏輯卷:

$ sudo lvcreate --name data --size 2G data-volume
 Logical volume "data" created.

訪問邏輯卷可以通過 /dev/mapper/<vgname>-<lvname> 或者 /dev/<vgname>/<lvname> 形式的路徑,即剛剛創建的 data 邏輯卷可以通過 /dev/data-volume/data 指定。

在該邏輯卷上創建 Ext4 文件系統:

$ sudo mkfs.ext4 /dev/data-volume/data
mke2fs 1.44.6 (5-Mar-2019)
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: 0f24cdd8-62e0-42fd-bc38-aa3bce91e099
Superblock backups stored on blocks:
 32768, 98304, 163840, 229376, 294912

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

此時該邏輯卷即可掛載到某個目錄分支下像普通物理分區一樣正常使用了。

操作卷組和邏輯卷

可以使用 lvextend 命令動態地擴展邏輯卷的存儲空間:

$ sudo lvextend --size +2G --resizefs /dev/data-volume/data
fsck from util-linux 2.33.1
/dev/mapper/data--volume-data: clean, 11/131072 files, 26156/524288 blocks
 Size of logical volume data-volume/data changed from 2.00 GiB (512 extents) to 4.00 GiB (1024 extents).
 Logical volume data-volume/data successfully resized.
resize2fs 1.44.6 (5-Mar-2019)
Resizing the filesystem on /dev/mapper/data--volume-data to 1048576 (4k) blocks.
The filesystem on /dev/mapper/data--volume-data is now 1048576 (4k) blocks long.

其中 --size +2G 用于指定增加 2G 空間, --resizefs 指定在擴展邏輯卷大小的同時擴充文件系統的大小(文件系統默認不會隨邏輯卷的空間變化而自動擴展)。

或者也可以直接指定擴展后的大小,如:

$ sudo lvextend --size 4G --resizefs /dev/data-volume/data

其他常用的命令比如通過 lvresize 命令擴展邏輯卷,使其占用當前卷組中剩余的全部空間:

$ sudo lvresize -l +100%free /dev/data-volume/data
 Size of logical volume data-volume/data changed from <3.00 GiB (767 extents) to <5.00 GiB (1279 extents).
 Logical volume data-volume/data successfully resized.

因為上面的命令沒有加上 --resizefs 或者 -r 選項,因此文件系統不會隨著邏輯卷自動擴展大小,可以通過 resize2fs 命令手動擴展文件系統:

$ sudo resize2fs /dev/data-volume/data

假設一段時間以后,邏輯卷 /dev/data-volume/data 的空間即將被數據填滿,可以嘗試添加另一塊硬盤 sdd :

$ lsblk
NAME  MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda   8:0 0 10G 0 disk
└─sda1  8:1 0 10G 0 part /
sdb   8:16 0 5G 0 disk
├─sdb1  8:17 0 3G 0 part /mnt/data
└─sdb2  8:18 0 2G 0 part [SWAP]
sdc   8:32 0 5G 0 disk
└─data--volume-data 253:0 0 5G 0 lvm
sdd   8:48 0 5G 0 disk
sr0   11:0 1 1024M 0 rom

使用 pvcreate 命令創建物理卷:

$ sudo pvs
 PV  VG  Fmt Attr PSize PFree
 /dev/sdc data-volume lvm2 a-- <5.00g 0
 /dev/sdd  lvm2 --- 5.00g 5.00g

使用 vgextend 命令將該物理卷添加到之前創建的卷組 data-volume 中:

$ sudo vgextend data-volume /dev/sdd
 Volume group "data-volume" successfully extended
$ sudo vgs
 VG  #PV #LV #SN Attr VSize VFree
 data-volume 2 1 0 wz--n- 9.99g <5.00g

此時的 data-volume 卷組包含了兩個物理卷( /dev/sdc 和 /dev/sdd )和一個邏輯卷( /dev/data-volume/data ),總大小變為 10G,閑置空間為 5G(即剛剛添加的物理卷)。

最后使用 lvresize 命令擴展邏輯卷大小,使其占據兩個物理卷的全部存儲空間:

$ sudo lvresize -l +100%free -r /dev/data-volume/data
fsck from util-linux 2.33.1
/dev/mapper/data--volume-data: clean, 11/196608 files, 30268/785408 blocks
 Size of logical volume data-volume/data changed from <5.00 GiB (1279 extents) to 9.99 GiB (2558 extents).
 Logical volume data-volume/data successfully resized.
resize2fs 1.44.6 (5-Mar-2019)
Resizing the filesystem on /dev/mapper/data--volume-data to 2619392 (4k) blocks.
The filesystem on /dev/mapper/data--volume-data is now 2619392 (4k) blocks long.

此時邏輯卷 /dev/data-volume/data 的大小擴展為 10G,即占用了整個卷組 data-volume(包含兩個 5G 的物理卷)的全部空間。

總結:LVM 卷組(vg)的作用類似于物理磁盤,用于承載邏輯卷(lv)。卷組可以由多個物理卷(磁盤或分區等)構成,空間不夠時也可以隨時添加新的物理卷進行擴展。

而卷組上的邏輯卷(lv)類似于磁盤分區,可以掛載到目錄作為存儲空間。但是物理分區的位置和大小固定,而邏輯卷則可以在卷組的基礎上動態的改變大小,甚至跨越多個物理磁盤和分區,使得管理起來更加方便和靈活。

常用 LVM 命令列表:

Command Used For
pvcreate Labeling devices for use with LVM
pvremove Removing the LVM label from a physical volume
pvdisplay / pvs Displaying information on the specified device or all physical volumes on the system
vgcreate Creating a new volume group
vgremove Removing (deleting) a volume group
vgextend Adding physical volumes to a volume group
vgreduce Removing physical volumes from a volume group
vgdisplay / vgs Displaying information about the specified group or all volume groups on the system
lvcreate Creating a new logical volume
lvremove Removing (deleting) a logical volume
lvextend Increasing the size of a logical volume
lvreduce Decreasing the size of a logical volume
lvdisplay / lvs Displaying all logical volumes on the system or in a specified volume group

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

標簽:淮安 樂山 德宏 上海 泰安 福州 安康 鷹潭

巨人網絡通訊聲明:本文標題《Linux磁盤設備與LVM管理命令示例詳解》,本文關鍵詞  Linux,磁盤,設備,與,LVM,管理,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux磁盤設備與LVM管理命令示例詳解》相關的同類信息!
  • 本頁收集關于Linux磁盤設備與LVM管理命令示例詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 甜蜜蜜电影免费完整版在线观看| 午夜精品视频在线观看| 在线观看精品视频一区二区| 公与熄bd曰本中文字幕 | 久久又黄又爽又色成人网站| 色播亚洲视频在线观看| 男主病娇hhh强迫h处h| 爽?好紧?宝贝别夹大巴在线观看| 人摸人人人澡人人超碰久久爱 | 网曝吃瓜黑料一区二区三区| 亚洲综合色网站| 巜丰满的欲妇2做爰播放| japanesegay日本办公室男男| 女人公共厕所小便| 骚片在线观看| 亚洲va欧美va天堂v国产综合| 女女同互慰吃奶互揉高潮在线观看| 一级成人a做片免费| 少妇婬荡呻吟久久久久久福利姬| 她儿砸被大佬盯上小说免费| 国产黄色一级网站| 翁公在厨房和我猛烈进出| 公馬亂倫在线播放| jzzijzzij亚洲日本少妇高潮| 国产综合精品久久亚洲| 韩国a级片在线观看| 欧美激情片在线观看| 性生交大片免费视频+试看| 99国产超薄肉色丝袜交足| xxxx性开放xxxx| 兔女郎护士被啪流水白浆| 在线国产三级| 国产AV成人免费视频乱吃皇帝 | 美女黄网站人色视频免费国产| 午夜精品久久久久久99热| 高h翁妇肉吃奶| 欧美成人综合在线| 狠狠干天天爽| 快穿攻略np肉肉| 真人一级毛片一级是A片真人片 | 免费?无码?国产在线看喉 |