溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux磁盤與文件系統(tǒng)的基礎(chǔ)命令指的是哪些

發(fā)布時(shí)間:2021-11-01 15:00:47 來源:億速云 閱讀:104 作者:柒染 欄目:系統(tǒng)運(yùn)維

Linux磁盤與文件系統(tǒng)的基礎(chǔ)命令指的是哪些,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

這里講述磁盤管理相關(guān)的命令。計(jì)算機(jī)中需要持久化存儲(chǔ)的數(shù)據(jù)一般是保存在硬盤等輔助存儲(chǔ)器中。硬盤一般容量較大,為了便于管理和使用,可以將硬盤分成一到多個(gè)邏輯磁盤,稱為分區(qū);為使分區(qū)中的文件組織成操作系統(tǒng)能夠處理的形式,需要對(duì)分區(qū)進(jìn)行格式化(創(chuàng)建文件系統(tǒng));在linux中,對(duì)于格式化后的分區(qū),還必須經(jīng)過掛載(可簡(jiǎn)單理解為將分區(qū)關(guān)聯(lián)至linux目錄樹中某個(gè)已知目錄)之后才能使用。

1、df 顯示文件系統(tǒng)磁盤空間使用量

[root@centos7 temp]# df -h 文件系統(tǒng)                 容量  已用  可用 已用% 掛載點(diǎn) /dev/mapper/centos-root   49G   18G   31G   36% / devtmpfs                 3.9G     0  3.9G    0% /dev tmpfs                    3.9G     0  3.9G    0% /dev/shm tmpfs                    3.9G  367M  3.5G   10% /run tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup /dev/sda1                497M  125M  373M   26% /boot /dev/mapper/centos-home   24G  4.0G   20G   17% /home tmpfs                    783M     0  783M    0% /run/user/0

選項(xiàng)-h作用是轉(zhuǎn)換數(shù)字的顯示單位(默認(rèn)為KB)。

顯示信息文件系統(tǒng)列下面帶tmpfs字樣的是虛擬內(nèi)存文件系統(tǒng)(此處不做展開)。

文件系統(tǒng)/dev/mapper/centos-root的掛載點(diǎn)是/(根目錄),即通常所說的根分區(qū)(或根文件系統(tǒng));/dev/sda1(boot分區(qū))中保存了內(nèi)核映像和一些啟動(dòng)時(shí)需要的輔助文件;另外,還對(duì)用戶家目錄單獨(dú)做了分區(qū)(/dev/mapper/centos-home)。

在linux中還可以做一個(gè)特殊的分區(qū):swap分區(qū)(交換分區(qū))。作用是:當(dāng)系統(tǒng)的物理內(nèi)存不夠用時(shí),會(huì)將物理內(nèi)存中一部分暫時(shí)不使用的數(shù)據(jù)交換至swap分區(qū)中,當(dāng)需要使用這些數(shù)據(jù)時(shí),再從swap空間交換回內(nèi)存空間。swap在功能上突破了物理內(nèi)存的限制,使程序可以操縱大于實(shí)際物理內(nèi)存的空間。但由于硬盤的速度遠(yuǎn)遠(yuǎn)低于內(nèi)存,使swap只能作為物理內(nèi)存的輔助。通常swap空間的大小是實(shí)際物理內(nèi)存大小的1到2倍。使用命令free可以查看swap空間的大小。

選項(xiàng)-i顯示inode信息

[root@centos7 tmp]# df -i 文件系統(tǒng)                   Inode 已用(I)  可用(I) 已用(I)% 掛載點(diǎn) /dev/mapper/centos-root 50425856   78822 50347034       1% / devtmpfs                  998721     391   998330       1% /dev tmpfs                    1001340       1  1001339       1% /dev/shm tmpfs                    1001340     490  1000850       1% /run tmpfs                    1001340      13  1001327       1% /sys/fs/cgroup /dev/sda1                 512000     330   511670       1% /boot /dev/mapper/centos-home 24621056  190391 24430665       1% /home tmpfs                    1001340       1  1001339       1% /run/user/0

這里顯示的數(shù)字是該文件系統(tǒng)中inode數(shù)量的使用情況。

2、fdisk 磁盤分區(qū)工具

fdisk [options] [device...]

選項(xiàng)-l表示列出分區(qū)表

[root@centos7 tmp]# fdisk -l /dev/sda  磁盤 /dev/sda:85.9 GB, 85899345920 字節(jié),167772160 個(gè)扇區(qū) Units = 扇區(qū) of 1 * 512 = 512 bytes 扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié) I/O 大小(最小/***):512 字節(jié) / 512 字節(jié) 磁盤標(biāo)簽類型:dos 磁盤標(biāo)識(shí)符:0x0001abbc     設(shè)備   Boot      Start         End      Blocks   Id  System /dev/sda1   *        2048     1026047      512000   83  Linux /dev/sda2         1026048   167772159    83373056   8e  Linux LVM [root@centos7 tmp]#

當(dāng)前機(jī)械硬盤中包含一到多個(gè)固定在主軸(spindle)上的盤片(platter),盤片由硬質(zhì)磁性合金材料構(gòu)成。每張盤片有上下兩個(gè)表面,每個(gè)表面都包含數(shù)量巨大的扇區(qū)(sector),扇區(qū)是大小為512  byte的區(qū)塊,這些區(qū)塊均勻的分布于盤片的同心圓上,這些同心圓被稱為磁道(track)。上千個(gè)磁道的寬度相當(dāng)于人類頭發(fā)的直徑。

硬盤中使用固定于磁臂(disk arm)頂端的磁頭(disk head  上下兩面均有)讀寫盤面中的數(shù)據(jù)。硬盤不工作時(shí),磁頭停留在啟停區(qū)(盤片上靠近主軸的區(qū)域);啟停區(qū)外是數(shù)據(jù)區(qū),盤片最外圍磁道稱為0磁道;硬盤啟動(dòng)后,盤片會(huì)圍繞主軸高速旋轉(zhuǎn),盤片旋轉(zhuǎn)產(chǎn)生的氣流相當(dāng)強(qiáng),足以使磁頭托起,并與盤面保持一個(gè)微小的距離(大概相當(dāng)于人類頭發(fā)直徑的千分之一)。磁臂擺動(dòng),可以將磁頭移動(dòng)至任意磁道上方。

單一磁道示意圖: 

Linux磁盤與文件系統(tǒng)的基礎(chǔ)命令指的是哪些

當(dāng)前硬盤轉(zhuǎn)速大概在7200轉(zhuǎn)/分鐘到15000轉(zhuǎn)/分鐘左右。假設(shè)硬盤轉(zhuǎn)速是10000轉(zhuǎn)/分鐘,則意味著,轉(zhuǎn)一圈需要的時(shí)間是6ms。

所有盤面上的同一磁道構(gòu)成一個(gè)圓柱,通常稱做柱面(Cylinder),系統(tǒng)將數(shù)據(jù)存儲(chǔ)到磁盤上時(shí),按柱面、磁頭、扇區(qū)的方式進(jìn)行,即最上方0磁頭最外圍0磁道***個(gè)扇區(qū)開始寫入,寫滿一個(gè)磁道之后,接著在同一柱面的下一個(gè)磁頭繼續(xù)寫入。同一個(gè)柱面都寫滿之后才推進(jìn)到內(nèi)層的下一個(gè)柱面。

fdisk命令中device通常是/dev/hda、/dev/hdb....(IDE接口類型的硬盤設(shè)備名)或/dev/sda、/dev/sdb....(SCSI接口類型硬盤設(shè)備名),表示整個(gè)硬盤,如果硬盤被分區(qū),則在設(shè)備名后追加一個(gè)數(shù)字表示此設(shè)備的第幾個(gè)分區(qū)。如上例中的/dev/sda1和/dev/sda2

硬盤磁頭存取數(shù)據(jù)是以扇區(qū)(512bytes)為單位的(上例中Start和End列),但操作系統(tǒng)存取數(shù)據(jù)是以塊(Block)為單位的(注意:這里說的Block的大小不同于fdisk命令輸出中的Blocks列,fdisk命令輸出中Blocks列的大小為1024  bytes);扇區(qū)是硬件級(jí)別的,Block是文件系統(tǒng)級(jí)別的,也就是說在創(chuàng)建文件系統(tǒng)(格式化)的時(shí)候才決定一個(gè)block的大小、數(shù)量。一個(gè)塊的大小是一個(gè)扇區(qū)大小2的n次方倍,本例文件系統(tǒng)Block的默認(rèn)大小為4096  bytes(格式化時(shí)可以指定為其他值)。

我們?cè)?52這臺(tái)機(jī)器上新添加三塊硬盤(每塊200GB)

[root@idc-v-71252 ~]# ls -l /dev/sd[a-d]* brw-rw---- 1 root disk 8,  0 12月 13 09:49 /dev/sda brw-rw---- 1 root disk 8,  1 12月 13 09:49 /dev/sda1 brw-rw---- 1 root disk 8,  2 12月 13 09:49 /dev/sda2 brw-rw---- 1 root disk 8, 16 12月 13 09:49 /dev/sdb brw-rw---- 1 root disk 8, 32 12月 13 09:49 /dev/sdc brw-rw---- 1 root disk 8, 48 12月 13 09:49 /dev/sdd #這里看到除了原有被分過區(qū)的sda外,多出了設(shè)備sdb、sdc、sdd #這里的第五列由逗號(hào)分隔的兩個(gè)數(shù)字組成,它們是內(nèi)核用來識(shí)別具體設(shè)備的標(biāo)識(shí)號(hào)。

下面使用fdisk命令對(duì)新磁盤進(jìn)行分區(qū)

[root@idc-v-71252 ~]# fdisk /dev/sdb 歡迎使用 fdisk (util-linux 2.23.2)。  更改將停留在內(nèi)存中,直到您決定將更改寫入磁盤。 使用寫入命令前請(qǐng)三思。  Device does not contain a recognized partition table 使用磁盤標(biāo)識(shí)符 0xc41dfd92 創(chuàng)建新的 DOS 磁盤標(biāo)簽。  命令(輸入 m 獲取幫助):

在提示符后輸入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    u   change display/entry units    v   verify the partition table    w   write table to disk and exit    x   extra functionality (experts only)  命令(輸入 m 獲取幫助):

命令n表示創(chuàng)建一個(gè)新分區(qū)

命令(輸入 m 獲取幫助):n Partition type:    p   primary (0 primary, 0 extended, 4 free)    e   extended Select (default p):

此處可選項(xiàng)有兩個(gè),p表示主分區(qū)(primary),e表示擴(kuò)展分區(qū)(extended),默認(rèn)為主分區(qū)。

每塊硬盤分區(qū)后,位于0磁頭0柱面1扇區(qū)的是一個(gè)特殊區(qū)域,稱為MBR(Main Boot Record  主引導(dǎo)記錄區(qū)),其中前446字節(jié)是Bootloader(引導(dǎo)加載程序),之后的64字節(jié)是DPT(Disk Partition Table  硬盤分區(qū)表),***兩個(gè)字節(jié)的Magic Number(硬盤有效標(biāo)志)。

DPT中記錄了此塊硬盤有哪些分區(qū),由于其大小的限制,使得分區(qū)表只能包含4條記錄,可以是一到四個(gè)主分區(qū)或一個(gè)擴(kuò)展分區(qū)和一到三個(gè)主分區(qū)。其中擴(kuò)展分區(qū)可以再分區(qū),稱為邏輯分區(qū)。

我們選擇默認(rèn)的主分區(qū):

Select (default p):  Using default response p 分區(qū)號(hào) (1-4,默認(rèn) 1): 起始 扇區(qū) (2048-419430399,默認(rèn)為 2048): 將使用默認(rèn)值 2048 Last 扇區(qū), +扇區(qū) or +size{K,M,G} (2048-419430399,默認(rèn)為 419430399):+100G 分區(qū) 1 已設(shè)置為 Linux 類型,大小設(shè)為 100 GiB  命令(輸入 m 獲取幫助):

每一步驟都有相應(yīng)提示,可以被使用的扇區(qū)從2048號(hào)開始(前面的扇區(qū)包括MBR用做其他用途),分區(qū)結(jié)束扇區(qū)的指定可以是扇區(qū)號(hào),也可以是+size這樣的格式。這里我們指定分區(qū)大小為100G

使用p命令打印分區(qū)信息:

命令(輸入 m 獲取幫助):p  磁盤 /dev/sdb:214.7 GB, 214748364800 字節(jié),419430400 個(gè)扇區(qū) Units = 扇區(qū) of 1 * 512 = 512 bytes 扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié) I/O 大小(最小/***):512 字節(jié) / 512 字節(jié) 磁盤標(biāo)簽類型:dos 磁盤標(biāo)識(shí)符:0xc41dfd92     設(shè)備   Boot      Start         End      Blocks   Id  System /dev/sdb1            2048   209717247   104857600   83  Linux  命令(輸入 m 獲取幫助):

注意這里的顯示的不同,Boot列如果有*標(biāo)志,表示此分區(qū)為boot分區(qū)。Id列表示分區(qū)類型,可以使用命令l列出所有支持的類型,其中82表示linux  swap,83表示linux默認(rèn)分區(qū)類型,8e表示linux lvm(后述)。

然后我們將信息保存:

命令(輸入 m 獲取幫助):w The partition table has been altered!  Calling ioctl() to re-read partition table. 正在同步磁盤。 [root@idc-v-71252 ~]#

3、mkfs 創(chuàng)建文件系統(tǒng)

選項(xiàng)-t可以指定文件系統(tǒng)類型(包括ext3 ext4 btrfs xfs reiserfs等)

[root@idc-v-71252 ~]# mkfs -t ext4 /dev/sdb1 #或者直接執(zhí)行 mkfs.ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) 文件系統(tǒng)標(biāo)簽= OS type: Linux 塊大小=4096 (log=2) 分塊大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 6553600 inodes, 26214400 blocks 1310720 blocks (5.00%) reserved for the super user ***個(gè)數(shù)據(jù)塊=0 Maximum filesystem blocks=2174746624 800 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks:          32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,          4096000, 7962624, 11239424, 20480000, 23887872  Allocating group tables: 完成                             正在寫入inode表: 完成                             Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成     [root@idc-v-71252 ~]#

這樣,我們就把剛剛分的區(qū)格式化成了ext4文件系統(tǒng),輸出信息中顯示了inode和block數(shù)量等信息。

4、mount 掛載文件系統(tǒng)

將格式化好的文件系統(tǒng)掛載至/root/temp/tmp

[root@idc-v-71252 tmp]# mount /dev/sdb1 /root/temp/tmp [root@idc-v-71252 tmp]# df -h 文件系統(tǒng)                 容量  已用  可用 已用% 掛載點(diǎn) /dev/mapper/centos-root   49G   14G   35G   28% / devtmpfs                 3.9G     0  3.9G    0% /dev tmpfs                    3.9G     0  3.9G    0% /dev/shm tmpfs                    3.9G  8.5M  3.9G    1% /run tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup /dev/sda1                497M  170M  328M   35% /boot /dev/mapper/centos-home   24G   16G  7.6G   68% /home tmpfs                    799M     0  799M    0% /run/user/0 /dev/sdb1                 99G   61M   94G    1% /root/temp/tmp [root@idc-v-71252 tmp]#

可以看到新分區(qū)已經(jīng)可以使用了,在格式化時(shí),系統(tǒng)會(huì)將磁盤上一定空間(此處是5%)保留做其他用途,可以使用命令dumpe2fs /dev/sdb1  2>/dev/null|grep 'Reserved block count'查看保留塊數(shù)量。

這樣掛載的分區(qū)只是臨時(shí)有效,當(dāng)系統(tǒng)重啟時(shí),并不會(huì)自動(dòng)掛載該分區(qū)。如需要***生效,可以將分區(qū)信息寫入分區(qū)配置文件/etc/fstab

[root@idc-v-71252 ~]# cat /etc/fstab   # # /etc/fstab # Created by anaconda on Fri Jan 15 00:59:59 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root /                       xfs     defaults        0 0 UUID=10205c20-bd44-4991-8c84-7b38db63a581 /boot                   xfs     defaults        0 0 /dev/mapper/centos-home /home                   xfs     defaults        0 0 /dev/mapper/centos-swap swap                    swap    defaults        0 0

此文件中記錄了原有分區(qū)及其掛載信息,#開頭的行為注釋行,其余行被分為6列:

***列表示文件系統(tǒng)

第二列是掛載點(diǎn)

第三列為文件系統(tǒng)類型

第四列為選項(xiàng)

第五列表示是否對(duì)該文件系統(tǒng)使用dump工具備份,0表示不備份

第六列表示是否使用fsck工具對(duì)該文件系統(tǒng)做定時(shí)檢查,0表示不檢查

在文件中追加如下信息后,系統(tǒng)重啟時(shí)新分區(qū)也會(huì)被自動(dòng)掛載:

/dev/sdb1 /root/temp/tmp ext4 defaults 0 0

在使用mount命令掛載時(shí),可以使用選項(xiàng)-o options指定掛載選項(xiàng)(/etc/fstab中第四列)

如對(duì)已掛載的新分區(qū)重新以只讀方式掛載:

[root@idc-v-71252 home]# mount -o remount,ro /dev/sdb1 [root@idc-v-71252 home]# cd /root/temp/tmp [root@idc-v-71252 tmp]# touch 1 touch: 無法創(chuàng)建"1": 只讀文件系統(tǒng) [root@idc-v-71252 tmp]#

此時(shí)再在目錄/root/temp/tmp中創(chuàng)建文件時(shí)顯示報(bào)錯(cuò):只讀文件系統(tǒng)

[root@idc-v-71252 tmp]# mount -o remount,rw /dev/sdb1 [root@idc-v-71252 tmp]# touch 2 [root@idc-v-71252 tmp]# ls 2  lost+found [root@idc-v-71252 tmp]# 重新以讀寫方式掛載后可以創(chuàng)建文件

配置文件中的defaults指的是選項(xiàng):rw, suid, dev, exec, auto, nouser, 和 async.  它們的意思請(qǐng)查看mount的man手冊(cè)

選項(xiàng)-a表示讀取配置文件中所有記錄并重新掛載

選項(xiàng)-B或--bind可以使一個(gè)目錄掛載至另一個(gè)目錄

[root@idc-v-71252 tmp]# ls -l /opt/ 總用量 0 [root@idc-v-71252 tmp]#  [root@idc-v-71252 tmp]# mount --bind /root/temp/tmp /opt [root@idc-v-71252 tmp]# ls /opt -l 總用量 16 -rw-r--r-- 1 root root     0 12月 13 14:44 2 drwx------ 2 root root 16384 12月 13 12:54 lost+found [root@idc-v-71252 tmp]#

這樣掛載的目錄使用df命令并不能查看到,可以使用mount命令查看

[root@idc-v-71252 tmp]# mount | grep /dev/sdb1 /dev/sdb1 on /root/temp/tmp type ext4 (rw,relatime,data=ordered) /dev/sdb1 on /opt type ext4 (rw,relatime,data=ordered)

選項(xiàng)-t表示指定文件系統(tǒng)類型,如掛載光盤:

[root@centos7 tmp]# mount -t iso9660 /dev/cdrom /mnt mount: /dev/sr0 寫保護(hù),將以只讀方式掛載 [root@centos7 tmp]#  #或者掛載NFS文件系統(tǒng)(x.x.x.x是NFS服務(wù)器IP地址) mount -t nfs x.x.x.x:/src_dir /path/to/local/dest_dir

5、umount 卸載文件系統(tǒng)

卸載時(shí)既可以指定設(shè)備名也可以指定掛載點(diǎn),當(dāng)文件系統(tǒng)內(nèi)有進(jìn)程正在使用某文件時(shí),卸載會(huì)報(bào)錯(cuò):

[root@idc-v-71252 ~]# umount /root/temp/tmp umount: /root/temp/tmp:目標(biāo)忙。         (有些情況下通過 lsof(8) 或 fuser(1) 可以          找到有關(guān)使用該設(shè)備的進(jìn)程的有用信息) [root@idc-v-71252 ~]#

此時(shí)可使用lsof或fuser找出進(jìn)程(見這里),停止該進(jìn)程之后再卸載即可。

如果是卸載光盤還可以用eject命令

[root@centos7 tmp]# eject

6、fsck 檢查并修復(fù)文件系統(tǒng)

可以使用fsck命令檢查分區(qū)是否正常,需要在卸載的狀態(tài)檢查

[root@idc-v-71252 temp]# umount /dev/sdb1 [root@idc-v-71252 temp]# fsck /dev/sdb1 fsck,來自 util-linux 2.23.2 e2fsck 1.42.9 (28-Dec-2013) /dev/sdb1: clean, 12/6553600 files, 459544/26214400 blocks

直接執(zhí)行命令時(shí),如果檢測(cè)到受損,會(huì)有交互式提示詢問是否進(jìn)行修復(fù)壞塊

選項(xiàng)-a表示不詢問直接修復(fù)

選項(xiàng)-y表示總是對(duì)交互式詢問輸入yes

7、mkswap 創(chuàng)建swap分區(qū)

linux的swap分區(qū)可以用磁盤分區(qū)做,也可以用文件做,當(dāng)前系統(tǒng)的swap使用的是分區(qū)。下面舉一個(gè)使用文件創(chuàng)建swap分區(qū)的例子

首先使用命令dd生成一個(gè)大小為8G的文件

[root@idc-v-71252 tmp]# dd if=/dev/zero of=swapfile bs=1024K count=8192 記錄了8192+0 的讀入 記錄了8192+0 的寫出 8589934592字節(jié)(8.6 GB)已復(fù)制,35.1683 秒,244 MB/秒 [root@idc-v-71252 tmp]# #命令會(huì)在當(dāng)前目錄下創(chuàng)建一個(gè)文件swapfile #if表示指定讀取的文件或設(shè)備 #of表示指定寫入的文件或設(shè)備 #bs表示一次讀出或?qū)懭氲拇笮?nbsp;#count表示讀出或?qū)懭氪螖?shù) [root@idc-v-71252 tmp]# du -sh swapfile  8.0G    swapfile

創(chuàng)建swap分區(qū)

[root@idc-v-71252 tmp]# mkswap swapfile  正在設(shè)置交換空間版本 1,大小 = 8388604 KiB 無標(biāo)簽,UUID=84fbe922-9444-482b-aa55-631ce72161c0

8、swapon/swapoff 啟用/停用swap文件或設(shè)備

[root@idc-v-71252 tmp]# swapon swapfile swapon: /root/temp/tmp/swapfile:不安全的權(quán)限 0644,建議使用 0600。 [root@idc-v-71252 tmp]# free -m               total        used        free      shared  buff/cache   available Mem:           7983         115          53           8        7813        7794 Swap:         16255           0       16255 #此處看到swap分區(qū)已被擴(kuò)大 [root@idc-v-71252 tmp]# swapoff swapfile [root@idc-v-71252 tmp]# free -m               total        used        free      shared  buff/cache   available Mem:           7983         109          59           8        7813        7800 Swap:          8063           0        8063

9、parted 磁盤分區(qū)工具

前面所述的MBR中的分區(qū)表不支持大于2TB以上的分區(qū),為了解決這一限制和MBR的其它不足,出現(xiàn)了GTP(全局唯一標(biāo)識(shí)分區(qū)表 GUID Partition  Table),是一種磁盤的分區(qū)表的結(jié)構(gòu)布局的標(biāo)準(zhǔn),屬于UEFI(統(tǒng)一可擴(kuò)展固件接口)標(biāo)準(zhǔn)的一部分。需要使用命令parted劃分支持GTP的分區(qū)(可兼容MBR分區(qū))。

直接使用命令parted時(shí)會(huì)進(jìn)入交互界面

[root@idc-v-71252 ~]# parted /dev/sdb GNU Parted 3.1 使用 /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)

可以在提示符后輸入help顯示可用命令列表(命令可簡(jiǎn)寫)

命令print(簡(jiǎn)寫p)表示打印分區(qū)表

(parted) p                                                                 Model: VMware Virtual disk (scsi) Disk /dev/sdb: 215GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags:   Number  Start   End    Size   Type     File system  標(biāo)志  1      1049kB  107GB  107GB  primary  ext4  (parted)

命令quit表示退出交互界面

選項(xiàng)-s表示非交互模式,此時(shí)命令寫在后面

[root@idc-v-71252 ~]# parted -s /dev/sdb print Model: VMware Virtual disk (scsi) Disk /dev/sdb: 215GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags:   Number  Start   End    Size   Type     File system  標(biāo)志  1      1049kB  107GB  107GB  primary  ext4  [root@idc-v-71252 ~]# fdisk -l /dev/sdb1  磁盤 /dev/sdb1:107.4 GB, 107374182400 字節(jié),209715200 個(gè)扇區(qū) Units = 扇區(qū) of 1 * 512 = 512 bytes 扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié) I/O 大小(最小/***):512 字節(jié) / 512 字節(jié)  [root@idc-v-71252 ~]#

Partition Table后的msdos表示為MBR分區(qū),之所以兩個(gè)命令中sdb1分區(qū)大小顯示為107G而不是100G是因?yàn)樵谶M(jìn)行計(jì)算時(shí)使用1000  bytes作為1KB計(jì)數(shù)。

不能在已經(jīng)做MBR分區(qū)的硬盤上做GTP分區(qū),重做會(huì)導(dǎo)致原有分區(qū)被格式化。

這里在新磁盤/dev/sdc上做GTP分區(qū):

[root@idc-v-71252 ~]# parted /dev/sdc GNU Parted 3.1 使用 /dev/sdc Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)

注意交互模式與fdisk命令不同,parted的命令一旦按回車確認(rèn),命令就馬上執(zhí)行,對(duì)磁盤的更改就立即生效。

命令mklabel指定分區(qū)格式(msdos或gtp),如果格式未知,使用print命令時(shí)會(huì)報(bào)錯(cuò):錯(cuò)誤: /dev/sdc: unrecognised  disk label

(parted) mklabel gpt

命令mkpart表示創(chuàng)建新分區(qū),后面接分區(qū)類型(主分區(qū)還是擴(kuò)展分區(qū))、文件系統(tǒng)類型(ext4等,可省略)、起始點(diǎn)、結(jié)束點(diǎn)。

(parted) mkpart primary 0KB 100GB 警告: You requested a partition from 0.00B to 100GB (sectors 0..195312500). The closest location we can manage is 17.4kB to 100GB (sectors 34..195312500). Is this still acceptable to you? 是/Yes/否/No? yes                                                          警告: The resulting partition is not properly aligned for best performance. 忽略/Ignore/放棄/Cancel? ignore                                            (parted) p                                                                 Model: VMware Virtual disk (scsi) Disk /dev/sdc: 215GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags:   Number  Start   End    Size   File system  Name     標(biāo)志  1      17.4kB  100GB  100GB               primary

命令rm表示刪除分區(qū),后面接分區(qū)號(hào)

(parted) rm 1                                                              (parted) p                                                                 Model: VMware Virtual disk (scsi) Disk /dev/sdc: 215GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags:   Number  Start  End  Size  File system  Name  標(biāo)志  (parted)

下面使用非交互模式繼續(xù)

[root@idc-v-71252 ~]# parted -s /dev/sdc mkpart primary ext4 18KB 100GB  警告: The resulting partition is not properly aligned for best performance. [root@idc-v-71252 ~]# parted -s /dev/sdc print Model: VMware Virtual disk (scsi) Disk /dev/sdc: 215GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags:   Number  Start   End    Size   File system  Name     標(biāo)志  1      17.9kB  100GB  100GB               primary

這里使用1000 bytes作為1KB計(jì)數(shù)格式化并掛載(部分輸出略)

[root@idc-v-71252 temp]# mkfs.ext4 /dev/sdc1 [root@idc-v-71252 temp]# mount /dev/sdc1 /root/temp/tmp_1 [root@idc-v-71252 temp]# df -h|grep ^/dev /dev/mapper/centos-root   49G   22G   27G   44% / /dev/sda1                497M  170M  328M   35% /boot /dev/mapper/centos-home   24G   16G  7.6G   68% /home /dev/sdb1                 99G   61M   94G    1% /root/temp/tmp /dev/sdc1                 92G   61M   87G    1% /root/temp/tmp_1

***再用parted做一個(gè)MBR擴(kuò)展分區(qū),命令如下:

parted -s /dev/sdd mklabel msdos parted -s /dev/sdd mkpart extended 100GB 100% parted -s /dev/sdd mkpart logical 100GB 200GB

結(jié)果顯示為:

[root@idc-v-71252 temp]# parted -s /dev/sdd print Model: VMware Virtual disk (scsi) Disk /dev/sdd: 215GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags:   Number  Start  End    Size   Type      File system  標(biāo)志  1      100GB  215GB  115GB  extended               lba  5      100GB  200GB  100GB  logical  [root@idc-v-71252 temp]# fdisk -l /dev/sdd  磁盤 /dev/sdd:214.7 GB, 214748364800 字節(jié),419430400 個(gè)扇區(qū) Units = 扇區(qū) of 1 * 512 = 512 bytes 扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié) I/O 大小(最小/***):512 字節(jié) / 512 字節(jié) 磁盤標(biāo)簽類型:dos 磁盤標(biāo)識(shí)符:0x0006d495       設(shè)備 Boot      Start         End      Blocks   Id  System /dev/sdd1       195311616   419430399   112059392    f  W95 Ext'd (LBA) /dev/sdd5       195313664   390625279    97655808   83  Linux

格式化及掛載(省略部分輸出)

[root@idc-v-71252 temp]# mkfs.ext4 /dev/sdd5 [root@idc-v-71252 temp]# mount /dev/sdd5 /root/temp/tmp_2 [root@idc-v-71252 temp]# df -h|grep ^/dev /dev/mapper/centos-root   49G   22G   27G   44% / /dev/sda1                497M  170M  328M   35% /boot /dev/mapper/centos-home   24G   16G  7.6G   68% /home /dev/sdb1                 99G   61M   94G    1% /root/temp/tmp /dev/sdc1                 92G   61M   87G    1% /root/temp/tmp_1 /dev/sdd5                 92G   61M   87G    1% /root/temp/tmp_2

這些新分區(qū)都可以寫入配置文件/etc/fstab中實(shí)現(xiàn)重啟后自動(dòng)掛載

LVM 邏輯卷管理

LVM是linux環(huán)境下對(duì)磁盤分區(qū)進(jìn)行管理的一種機(jī)制,能夠使系統(tǒng)管理員更方便的為應(yīng)用與用戶分配存儲(chǔ)空間。

術(shù)語

物理存儲(chǔ)介質(zhì)(The physical  media):指的是系統(tǒng)的存儲(chǔ)設(shè)備,如上面制作的分區(qū)/dev/sdb1、/dev/sdc1、/dev/sdd5

物理卷(PV: Physical Volume):相當(dāng)于物理存儲(chǔ)介質(zhì),但添加了與LVM相關(guān)的管理參數(shù)。

卷組(VG: Volume Group):由一個(gè)或多個(gè)物理卷組成。

邏輯卷(LV: Logical Volume):在卷組的基礎(chǔ)上劃分的邏輯分區(qū)(文件系統(tǒng))。

PE(physical  extent):每一個(gè)物理卷被劃分為稱為PE的基本單元,具有唯一編號(hào)的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認(rèn)為4MB。

LE(logical extent):邏輯卷也被劃分為被稱為L(zhǎng)E的可被尋址的基本單位。在同一個(gè)卷組中,LE的大小和PE是相同的,并且一一對(duì)應(yīng)。

步驟

1、創(chuàng)建分區(qū)

可以使用fdisk或parted進(jìn)行分區(qū),和前面舉例中的區(qū)別僅僅是分區(qū)類型要選8e。這里將三塊新硬盤的剩余空間做成LVM分區(qū),parted方式(僅舉一例,其余略):

parted -s /dev/sdb mkpart primary 107GB 100% parted -s /dev/sdb toggle 2 lvm  #表示將第二個(gè)分區(qū)定義為lvm類型(8e)

2、創(chuàng)建PV

[root@idc-v-71252 ~]# pvcreate /dev/sd[bcd]2   Physical volume "/dev/sdb2" successfully created   Physical volume "/dev/sdc2" successfully created   Physical volume "/dev/sdd2" successfully created [root@idc-v-71252 ~]#  #查看 [root@idc-v-71252 ~]# pvscan    PV /dev/sda2   VG centos   lvm2 [79.51 GiB / 64.00 MiB free]   PV /dev/sdb2               lvm2 [100.00 GiB]   PV /dev/sdc2               lvm2 [106.87 GiB]   PV /dev/sdd2               lvm2 [93.13 GiB]   Total: 4 [379.50 GiB] / in use: 1 [79.51 GiB] / in no VG: 3 [300.00 GiB]

3、創(chuàng)建VG

[root@idc-v-71252 ~]# vgcreate -s 8M test_lvm /dev/sd[bcd]2   Volume group "test_lvm" successfully created #這里使用選項(xiàng)-s指定PE大小為8M,卷組起名為test_lvm #查看 [root@idc-v-71252 ~]# vgscan    Reading all physical volumes.  This may take a while...   Found volume group "centos" using metadata type lvm2   Found volume group "test_lvm" using metadata type lvm2

4、創(chuàng)建LV

[root@idc-v-71252 ~]# lvcreate -n test_1 -L 50G test_lvm    Logical volume "test_1" created. [root@idc-v-71252 ~]#  #選項(xiàng)-n指定LV名為test_1,-L指定大小,也可以用選項(xiàng)-l指定LE的數(shù)量 #查看 [root@idc-v-71252 ~]# lvscan    ACTIVE            '/dev/centos/swap' [7.88 GiB] inherit   ACTIVE            '/dev/centos/home' [23.48 GiB] inherit   ACTIVE            '/dev/centos/root' [48.09 GiB] inherit   ACTIVE            '/dev/test_lvm/test_1' [50.00 GiB] inherit [root@idc-v-71252 ~]#

5、格式化及掛載

#在這里進(jìn)行格式化,***步分區(qū)之后并不需要格式化。 #這里我們格式化成xfs格式 [root@idc-v-71252 ~]# mkfs.xfs /dev/test_lvm/test_1 meta-data=/dev/test_lvm/test_1   isize=256    agcount=4, agsize=3276800 blks          =                       sectsz=512   attr=2, projid32bit=1          =                       crc=0        finobt=0 data     =                       bsize=4096   blocks=13107200, imaxpct=25          =                       sunit=0      swidth=0 blks naming   =version 2              bsize=4096   ascii-ci=0 ftype=0 log      =internal log           bsize=4096   blocks=6400, version=2          =                       sectsz=512   sunit=0 blks, lazy-count=1 realtime =none                   extsz=4096   blocks=0, rtextents=0 [root@idc-v-71252 ~]# mount /dev/test_lvm/test_1 /root/temp/test_1 [root@idc-v-71252 ~]# df -h|grep ^/dev /dev/mapper/centos-root       49G   22G   27G   44% / /dev/sda1                    497M  170M  328M   35% /boot /dev/mapper/centos-home       24G   16G  7.6G   68% /home /dev/sdb1                     99G   61M   94G    1% /root/temp/tmp /dev/sdc1                     92G   61M   87G    1% /root/temp/tmp_1 /dev/sdd5                     92G   61M   87G    1% /root/temp/tmp_2 /dev/mapper/test_lvm-test_1   50G   33M   50G    1% /root/temp/test_1

這里文件系統(tǒng)之所以顯示為/dev/mapper/....是因?yàn)閮?nèi)核利用Mapper Device機(jī)制將設(shè)備做了映射:

[root@idc-v-71252 ~]# ls -l /dev/mapper/test_lvm-test_1 lrwxrwxrwx 1 root root 7 12月 14 09:58 /dev/mapper/test_lvm-test_1 -> ../dm-3 [root@idc-v-71252 ~]# ls -l /dev/test_lvm/test_1 lrwxrwxrwx 1 root root 7 12月 14 09:58 /dev/test_lvm/test_1 -> ../dm-3

實(shí)際上/dev/test_lvm/test_1和/dev/mapper/test_lvm-test_1指向了同一個(gè)設(shè)備/dev/dm-3(在配置文件/etc/fstab中寫任意一種都可以),這里就不對(duì)映射機(jī)制做詳細(xì)展開了。

命令

前面舉例中說到了幾個(gè)創(chuàng)建和查看命令,除此之外,LVM還有一系列的命令,它們都以pv/vg/lv開頭,所起的作用大多是增加、刪除、擴(kuò)充、縮減、查看、改變等等。

創(chuàng)建命令

pvcreate vgcreate lvcreate

查看命令分三類,顯示信息側(cè)重或詳細(xì)程度不同:

pvs pvscan pvdisplay vgs vgscan vgdisplay lvs lvscan lvdisplay

改變屬性(分別改變本層次上對(duì)象的屬性)

pvchange vgchange lvchange

擴(kuò)容

vgextend lvextend

擴(kuò)容LV舉例(注意內(nèi)核可能不支持對(duì)某些文件系統(tǒng)的在線擴(kuò)容,此時(shí)需要先將文件系統(tǒng)卸載):

[root@idc-v-71252 dev]# lvextend -L +10G /dev/test_lvm/test_1   Size of logical volume test_lvm/test_1 changed from 50.00 GiB (6400 extents) to 60.00 GiB (7680 extents).   Logical volume test_1 successfully resized. [root@idc-v-71252 ~]# df -h /dev/mapper/test_lvm-test_1 文件系統(tǒng)                     容量  已用  可用 已用% 掛載點(diǎn) /dev/mapper/test_lvm-test_1   50G   33M   50G    1% /root/temp/test_1 #此時(shí)擴(kuò)容還沒有生效,使用xfs_growfs對(duì)xfs文件系統(tǒng)進(jìn)行在線擴(kuò)容 [root@idc-v-71252 dev]# xfs_growfs /dev/test_lvm/test_1 meta-data=/dev/mapper/test_lvm-test_1 isize=256    agcount=4, agsize=3276800 blks          =                       sectsz=512   attr=2, projid32bit=1          =                       crc=0        finobt=0 data     =                       bsize=4096   blocks=13107200, imaxpct=25          =                       sunit=0      swidth=0 blks naming   =version 2              bsize=4096   ascii-ci=0 ftype=0 log      =internal               bsize=4096   blocks=6400, version=2          =                       sectsz=512   sunit=0 blks, lazy-count=1 realtime =none                   extsz=4096   blocks=0, rtextents=0 data blocks changed from 13107200 to 15728640 [root@idc-v-71252 ~]# df -h /dev/mapper/test_lvm-test_1 文件系統(tǒng)                     容量  已用  可用 已用% 掛載點(diǎn) /dev/mapper/test_lvm-test_1   60G   33M   60G    1% /root/temp/test_1

ext系列的文件系統(tǒng)擴(kuò)容時(shí)需要使用命令resize2fs進(jìn)行在線擴(kuò)容

縮減(慎用)

vgreduce lvreduce

改名

vgrename lvrename

還有一些其他命令這里就不再列出了,關(guān)于它們的用法請(qǐng)查看相關(guān)手冊(cè)

簡(jiǎn)要介紹了磁盤和LVM相關(guān)的管理命令,另外,還有一個(gè)介于物理磁盤和磁盤分區(qū)的中間層:RAID(獨(dú)立冗余磁盤陣列),它提供磁盤級(jí)別的數(shù)據(jù)冗余能力。當(dāng)前服務(wù)器上一般都有RAID卡(硬件)。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI