久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

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

166次閱讀
沒有評論

共計(jì) 19462 個字符,預(yù)計(jì)需要花費(fèi) 49 分鐘才能閱讀完成。

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

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

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ú)做了分區(qū)(/dev/mapper/centos-home)。

在 linux 中還可以做一個特殊的分區(qū):swap 分區(qū)(交換分區(qū))。作用是:當(dāng)系統(tǒng)的物理內(nèi)存不夠用時,會將物理內(nèi)存中一部分暫時不使用的數(shù)據(jù)交換至 swap 分區(qū)中,當(dāng)需要使用這些數(shù)據(jù)時,再從 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  個扇區(qū)  Units =  扇區(qū)  of 1 * 512 = 512 bytes  扇區(qū)大小(邏輯 / 物理):512  字節(jié)  / 512  字節(jié)  I/O  大小(最小 /***):512  字節(jié)  / 512  字節(jié)   磁盤標(biāo)簽類型:dos  磁盤標(biāo)識符: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ī)械硬盤中包含一到多個固定在主軸 (spindle) 上的盤片(platter),盤片由硬質(zhì)磁性合金材料構(gòu)成。每張盤片有上下兩個表面,每個表面都包含數(shù)量巨大的扇區(qū)(sector),扇區(qū)是大小為 512  byte 的區(qū)塊,這些區(qū)塊均勻的分布于盤片的同心圓上,這些同心圓被稱為磁道(track)。上千個磁道的寬度相當(dāng)于人類頭發(fā)的直徑。

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

單一磁道示意圖: 

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

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

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

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

我們在 252 這臺機(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 # 這里的第五列由逗號分隔的兩個數(shù)字組成,它們是內(nèi)核用來識別具體設(shè)備的標(biāo)識號。

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

[root@idc-v-71252 ~]# fdisk /dev/sdb  歡迎使用  fdisk (util-linux 2.23.2)。  更改將停留在內(nèi)存中,直到您決定將更改寫入磁盤。  使用寫入命令前請三思。 Device does not contain a recognized partition table  使用磁盤標(biāo)識符  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)建一個新分區(qū)

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

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

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

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

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

Select (default p): Using default response p  分區(qū)號  (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 號開始(前面的扇區(qū)包括 MBR 用做其他用途),分區(qū)結(jié)束扇區(qū)的指定可以是扇區(qū)號,也可以是 +size 這樣的格式。這里我們指定分區(qū)大小為 100G

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

命令(輸入  m  獲取幫助):p  磁盤  /dev/sdb:214.7 GB, 214748364800  字節(jié),419430400  個扇區(qū)  Units =  扇區(qū)  of 1 * 512 = 512 bytes  扇區(qū)大小(邏輯 / 物理):512  字節(jié)  / 512  字節(jié)  I/O  大小(最小 /***):512  字節(jié)  / 512  字節(jié)   磁盤標(biāo)簽類型:dos  磁盤標(biāo)識符: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 *** 個數(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)可以使用了,在格式化時,系統(tǒng)會將磁盤上一定空間 (此處是 5%) 保留做其他用途,可以使用命令 dumpe2fs /dev/sdb1  2 /dev/null|grep Reserved block count 查看保留塊數(shù)量。

這樣掛載的分區(qū)只是臨時有效,當(dāng)系統(tǒ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)

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

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

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

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

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

如對已掛載的新分區(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]#

此時再在目錄 /root/temp/tmp 中創(chuàng)建文件時顯示報錯:只讀文件系統(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.   它們的意思請查看 mount 的 man 手冊

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

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

[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è)備名也可以指定掛載點(diǎn),當(dāng)文件系統(tǒng)內(nèi)有進(jìn)程正在使用某文件時,卸載會報錯:

[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 ~]#

此時可使用 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í)行命令時,如果檢測到受損,會有交互式提示詢問是否進(jìn)行修復(fù)壞塊

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

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

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

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

首先使用命令 dd 生成一個大小為 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]# # 命令會在當(dāng)前目錄下創(chuàng)建一個文件 swapfile #if 表示指定讀取的文件或設(shè)備  #of 表示指定寫入的文件或設(shè)備  #bs 表示一次讀出或?qū)懭氲拇笮? #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)識分區(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 時會進(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 顯示可用命令列表(命令可簡寫)

命令 print(簡寫 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 表示非交互模式,此時命令寫在后面

[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  個扇區(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ū),之所以兩個命令中 sdb1 分區(qū)大小顯示為 107G 而不是 100G 是因?yàn)樵谶M(jìn)行計(jì)算時使用 1000  bytes 作為 1KB 計(jì)數(shù)。

不能在已經(jīng)做 MBR 分區(qū)的硬盤上做 GTP 分區(qū),重做會導(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í)行,對磁盤的更改就立即生效。

命令 mklabel 指定分區(qū)格式(msdos 或 gtp),如果格式未知,使用 print 命令時會報錯:錯誤: /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ū)號

(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 做一個 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  個扇區(qū)  Units =  扇區(qū)  of 1 * 512 = 512 bytes  扇區(qū)大小(邏輯 / 物理):512  字節(jié)  / 512  字節(jié)  I/O  大小(最小 /***):512  字節(jié)  / 512  字節(jié)   磁盤標(biāo)簽類型:dos  磁盤標(biāo)識符: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)重啟后自動掛載

LVM 邏輯卷管理

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

術(shù)語

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

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

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

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

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

LE(logical extent):邏輯卷也被劃分為被稱為 LE 的可被尋址的基本單位。在同一個卷組中,LE 的大小和 PE 是相同的,并且一一對應(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 # 表示將第二個分區(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 指向了同一個設(shè)備 /dev/dm-3(在配置文件 /etc/fstab 中寫任意一種都可以),這里就不對映射機(jī)制做詳細(xì)展開了。

命令

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

創(chuàng)建命令

pvcreate vgcreate lvcreate

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

pvs pvscan pvdisplay vgs vgscan vgdisplay lvs lvscan lvdisplay

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

pvchange vgchange lvchange

擴(kuò)容

vgextend lvextend

擴(kuò)容 LV 舉例(注意內(nèi)核可能不支持對某些文件系統(tǒng)的在線擴(kuò)容,此時需要先將文件系統(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 # 此時擴(kuò)容還沒有生效,使用 xfs_growfs 對 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ò)容時需要使用命令 resize2fs 進(jìn)行在線擴(kuò)容

縮減(慎用)

vgreduce lvreduce

改名

vgrename lvrename

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

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

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

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計(jì)19462字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 曲松县| 南宫市| 连平县| 涪陵区| 抚松县| 海南省| 兴义市| 进贤县| 嘉善县| 礼泉县| 仙桃市| 天镇县| 平顶山市| 开化县| 皋兰县| 安乡县| 沁源县| 成武县| 嘉峪关市| 虎林市| 东乡县| 蒲江县| 英德市| 化州市| 灵川县| 平南县| 铅山县| 岳西县| 玉环县| 灵丘县| 大理市| 安康市| 东方市| 柳州市| 海伦市| 六枝特区| 宁阳县| 新巴尔虎左旗| 苍溪县| 门源| 上林县|