国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Linux基礎命令介紹十二:磁盤與文件系統

系統 Linux
本篇講述磁盤管理相關的命令。計算機中需要持久化存儲的數據一般是保存在硬盤等輔助存儲器中。硬盤一般容量較大,為了便于管理和使用,可以將硬盤分成一到多個邏輯磁盤,稱為分區;為使分區中的文件組織成操作系統能夠處理的形式,需要對分區進行格式化(創建文件系統);在linux中,對于格式化后的分區,還必須經過掛載之后才能使用。

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

[[179947]]

1、df 顯示文件系統磁盤空間使用量

  1. [root@centos7 temp]# df -h 
  2. 文件系統                 容量  已用  可用 已用% 掛載點 
  3. /dev/mapper/centos-root   49G   18G   31G   36% / 
  4. devtmpfs                 3.9G     0  3.9G    0% /dev 
  5. tmpfs                    3.9G     0  3.9G    0% /dev/shm 
  6. tmpfs                    3.9G  367M  3.5G   10% /run 
  7. tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup 
  8. /dev/sda1                497M  125M  373M   26% /boot 
  9. /dev/mapper/centos-home   24G  4.0G   20G   17% /home 
  10. tmpfs                    783M     0  783M    0% /run/user/0  

選項-h作用是轉換數字的顯示單位(默認為KB)。

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

文件系統/dev/mapper/centos-root的掛載點是/(根目錄),即通常所說的根分區(或根文件系統);/dev/sda1(boot分區)中保存了內核映像和一些啟動時需要的輔助文件;另外,還對用戶家目錄單獨做了分區(/dev/mapper/centos-home)。

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

選項-i顯示inode信息

  1. [root@centos7 tmp]# df -i 
  2. 文件系統                   Inode 已用(I)  可用(I) 已用(I)% 掛載點 
  3. /dev/mapper/centos-root 50425856   78822 50347034       1% / 
  4. devtmpfs                  998721     391   998330       1% /dev 
  5. tmpfs                    1001340       1  1001339       1% /dev/shm 
  6. tmpfs                    1001340     490  1000850       1% /run 
  7. tmpfs                    1001340      13  1001327       1% /sys/fs/cgroup 
  8. /dev/sda1                 512000     330   511670       1% /boot 
  9. /dev/mapper/centos-home 24621056  190391 24430665       1% /home 
  10. tmpfs                    1001340       1  1001339       1% /run/user/0  

這里顯示的數字是該文件系統中inode數量的使用情況。

2、fdisk 磁盤分區工具

  1. fdisk [options] [device...] 

選項-l表示列出分區表

  1. [root@centos7 tmp]# fdisk -l /dev/sda 
  2.  
  3. 磁盤 /dev/sda:85.9 GB, 85899345920 字節,167772160 個扇區 
  4. Units = 扇區 of 1 * 512 = 512 bytes 
  5. 扇區大小(邏輯/物理):512 字節 / 512 字節 
  6. I/O 大小(最小/***):512 字節 / 512 字節 
  7. 磁盤標簽類型:dos 
  8. 磁盤標識符:0x0001abbc 
  9.  
  10.    設備   Boot      Start         End      Blocks   Id  System 
  11. /dev/sda1   *        2048     1026047      512000   83  Linux 
  12. /dev/sda2         1026048   167772159    83373056   8e  Linux LVM 
  13. [root@centos7 tmp]#  

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

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

單一磁道示意圖:  

 

單一磁道示意圖 

當前硬盤轉速大概在7200轉/分鐘到15000轉/分鐘左右。假設硬盤轉速是10000轉/分鐘,則意味著,轉一圈需要的時間是6ms。

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

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

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

我們在252這臺機器上新添加三塊硬盤(每塊200GB) 

  1. [root@idc-v-71252 ~]# ls -l /dev/sd[a-d]* 
  2. brw-rw---- 1 root disk 8,  0 12月 13 09:49 /dev/sda 
  3. brw-rw---- 1 root disk 8,  1 12月 13 09:49 /dev/sda1 
  4. brw-rw---- 1 root disk 8,  2 12月 13 09:49 /dev/sda2 
  5. brw-rw---- 1 root disk 8, 16 12月 13 09:49 /dev/sdb 
  6. brw-rw---- 1 root disk 8, 32 12月 13 09:49 /dev/sdc 
  7. brw-rw---- 1 root disk 8, 48 12月 13 09:49 /dev/sdd 
  8. #這里看到除了原有被分過區的sda外,多出了設備sdb、sdc、sdd 
  9. #這里的第五列由逗號分隔的兩個數字組成,它們是內核用來識別具體設備的標識號。  

下面使用fdisk命令對新磁盤進行分區

  1. [root@idc-v-71252 ~]# fdisk /dev/sdb 
  2. 歡迎使用 fdisk (util-linux 2.23.2)。 
  3.  
  4. 更改將停留在內存中,直到您決定將更改寫入磁盤。 
  5. 使用寫入命令前請三思。 
  6.  
  7. Device does not contain a recognized partition table 
  8. 使用磁盤標識符 0xc41dfd92 創建新的 DOS 磁盤標簽。 
  9.  
  10. 命令(輸入 m 獲取幫助):  

在提示符后輸入m獲取幫助信息(列出了在提示符后可使用的命令及其解釋)

  1. 命令(輸入 m 獲取幫助):m 
  2. 命令操作 
  3.    a   toggle a bootable flag 
  4.    b   edit bsd disklabel 
  5.    c   toggle the dos compatibility flag 
  6.    d   delete a partition 
  7.    g   create a new empty GPT partition table 
  8.    G   create an IRIX (SGI) partition table 
  9.    l   list known partition types 
  10.    m   print this menu 
  11.    n   add a new partition 
  12.    o   create a new empty DOS partition table 
  13.    p   print the partition table 
  14.    q   quit without saving changes 
  15.    s   create a new empty Sun disklabel 
  16.    t   change a partition's system id 
  17.    u   change display/entry units 
  18.    v   verify the partition table 
  19.    w   write table to disk and exit 
  20.    x   extra functionality (experts only
  21.  
  22. 命令(輸入 m 獲取幫助):  

命令n表示創建一個新分區

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

此處可選項有兩個,p表示主分區(primary),e表示擴展分區(extended),默認為主分區。

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

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

我們選擇默認的主分區:

  1. Select (default p):  
  2. Using default response p 
  3. 分區號 (1-4,默認 1): 
  4. 起始 扇區 (2048-419430399,默認為 2048): 
  5. 將使用默認值 2048 
  6. Last 扇區, +扇區 or +size{K,M,G} (2048-419430399,默認為 419430399):+100G 
  7. 分區 1 已設置為 Linux 類型,大小設為 100 GiB 
  8.  
  9. 命令(輸入 m 獲取幫助):  

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

使用p命令打印分區信息:

  1. 命令(輸入 m 獲取幫助):p 
  2.  
  3. 磁盤 /dev/sdb:214.7 GB, 214748364800 字節,419430400 個扇區 
  4. Units = 扇區 of 1 * 512 = 512 bytes 
  5. 扇區大小(邏輯/物理):512 字節 / 512 字節 
  6. I/O 大小(最小/***):512 字節 / 512 字節 
  7. 磁盤標簽類型:dos 
  8. 磁盤標識符:0xc41dfd92 
  9.  
  10.    設備   Boot      Start         End      Blocks   Id  System 
  11. /dev/sdb1            2048   209717247   104857600   83  Linux 
  12.  
  13. 命令(輸入 m 獲取幫助):  

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

然后我們將信息保存:

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

3、mkfs 創建文件系統

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

  1. [root@idc-v-71252 ~]# mkfs -t ext4 /dev/sdb1 #或者直接執行 mkfs.ext4 /dev/sdb1 
  2. mke2fs 1.42.9 (28-Dec-2013) 
  3. 文件系統標簽= 
  4. OS type: Linux 
  5. 塊大小=4096 (log=2) 
  6. 分塊大小=4096 (log=2) 
  7. Stride=0 blocks, Stripe width=0 blocks 
  8. 6553600 inodes, 26214400 blocks 
  9. 1310720 blocks (5.00%) reserved for the super user 
  10. ***個數據塊=0 
  11. Maximum filesystem blocks=2174746624 
  12. 800 block groups 
  13. 32768 blocks per group, 32768 fragments per group 
  14. 8192 inodes per group 
  15. Superblock backups stored on blocks:  
  16.         32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,  
  17.         4096000, 7962624, 11239424, 20480000, 23887872 
  18.  
  19. Allocating group tables: 完成                             
  20. 正在寫入inode表: 完成                             
  21. Creating journal (32768 blocks): 完成 
  22. Writing superblocks and filesystem accounting information: 完成    
  23.  
  24. [root@idc-v-71252 ~]#   

這樣,我們就把剛剛分的區格式化成了ext4文件系統,輸出信息中顯示了inode和block數量等信息。

4、mount 掛載文件系統

將格式化好的文件系統掛載至/root/temp/tmp

  1. [root@idc-v-71252 tmp]# mount /dev/sdb1 /root/temp/tmp 
  2. [root@idc-v-71252 tmp]# df -h 
  3. 文件系統                 容量  已用  可用 已用% 掛載點 
  4. /dev/mapper/centos-root   49G   14G   35G   28% / 
  5. devtmpfs                 3.9G     0  3.9G    0% /dev 
  6. tmpfs                    3.9G     0  3.9G    0% /dev/shm 
  7. tmpfs                    3.9G  8.5M  3.9G    1% /run 
  8. tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup 
  9. /dev/sda1                497M  170M  328M   35% /boot 
  10. /dev/mapper/centos-home   24G   16G  7.6G   68% /home 
  11. tmpfs                    799M     0  799M    0% /run/user/0 
  12. /dev/sdb1                 99G   61M   94G    1% /root/temp/tmp 
  13. [root@idc-v-71252 tmp]#   

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

這樣掛載的分區只是臨時有效,當系統重啟時,并不會自動掛載該分區。如需要***生效,可以將分區信息寫入分區配置文件/etc/fstab

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

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

***列表示文件系統

第二列是掛載點

第三列為文件系統類型

第四列為選項

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

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

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

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

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

如對已掛載的新分區重新以只讀方式掛載:

  1. [root@idc-v-71252 home]# mount -o remount,ro /dev/sdb1 
  2. [root@idc-v-71252 home]# cd /root/temp/tmp 
  3. [root@idc-v-71252 tmp]# touch 1 
  4. touch: 無法創建"1": 只讀文件系統 
  5. [root@idc-v-71252 tmp]#   

此時再在目錄/root/temp/tmp中創建文件時顯示報錯:只讀文件系統

  1. [root@idc-v-71252 tmp]# mount -o remount,rw /dev/sdb1 
  2. [root@idc-v-71252 tmp]# touch 2 
  3. [root@idc-v-71252 tmp]# ls 
  4. 2  lost+found 
  5. [root@idc-v-71252 tmp]# 重新以讀寫方式掛載后可以創建文件  

配置文件中的defaults指的是選項:rw, suid, dev, exec, auto, nouser, 和 async. 它們的意思請查看mount的man手冊

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

選項-B或--bind可以使一個目錄掛載至另一個目錄

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

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

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

選項-t表示指定文件系統類型,如掛載光盤:

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

5、umount 卸載文件系統

卸載時既可以指定設備名也可以指定掛載點,當文件系統內有進程正在使用某文件時,卸載會報錯:

  1. [root@idc-v-71252 ~]# umount /root/temp/tmp 
  2. umount: /root/temp/tmp:目標忙。 
  3.         (有些情況下通過 lsof(8) 或 fuser(1) 可以 
  4.          找到有關使用該設備的進程的有用信息) 
  5. [root@idc-v-71252 ~]#   

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

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

  1. [root@centos7 tmp]# eject 

6、fsck 檢查并修復文件系統

可以使用fsck命令檢查分區是否正常,需要在卸載的狀態檢查

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

直接執行命令時,如果檢測到受損,會有交互式提示詢問是否進行修復壞塊

選項-a表示不詢問直接修復

選項-y表示總是對交互式詢問輸入yes

7、mkswap 創建swap分區

linux的swap分區可以用磁盤分區做,也可以用文件做,當前系統的swap使用的是分區。下面舉一個使用文件創建swap分區的例子

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

  1. [root@idc-v-71252 tmp]# dd if=/dev/zero of=swapfile bs=1024K count=8192 
  2. 記錄了8192+0 的讀入 
  3. 記錄了8192+0 的寫出 
  4. 8589934592字節(8.6 GB)已復制,35.1683 秒,244 MB/秒 
  5. [root@idc-v-71252 tmp]# 
  6. #命令會在當前目錄下創建一個文件swapfile 
  7. #if表示指定讀取的文件或設備 
  8. #of表示指定寫入的文件或設備 
  9. #bs表示一次讀出或寫入的大小 
  10. #count表示讀出或寫入次數 
  11. [root@idc-v-71252 tmp]# du -sh swapfile  
  12. 8.0G    swapfile  

創建swap分區

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

8、swapon/swapoff 啟用/停用swap文件或設備

  1. [root@idc-v-71252 tmp]# swapon swapfile 
  2. swapon: /root/temp/tmp/swapfile:不安全的權限 0644,建議使用 0600。 
  3. [root@idc-v-71252 tmp]# free -m 
  4.               total        used        free      shared  buff/cache   available 
  5. Mem:           7983         115          53           8        7813        7794 
  6. Swap:         16255           0       16255 
  7. #此處看到swap分區已被擴大 
  8. [root@idc-v-71252 tmp]# swapoff swapfile 
  9. [root@idc-v-71252 tmp]# free -m 
  10.               total        used        free      shared  buff/cache   available 
  11. Mem:           7983         109          59           8        7813        7800 
  12. Swap:          8063           0        8063  

9、parted 磁盤分區工具

前面所述的MBR中的分區表不支持大于2TB以上的分區,為了解決這一限制和MBR的其它不足,出現了GTP(全局唯一標識分區表 GUID Partition Table),是一種磁盤的分區表的結構布局的標準,屬于UEFI(統一可擴展固件接口)標準的一部分。需要使用命令parted劃分支持GTP的分區(可兼容MBR分區)。

直接使用命令parted時會進入交互界面

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

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

命令print(簡寫p)表示打印分區表

  1. (parted) p                                                                 
  2. Model: VMware Virtual disk (scsi) 
  3. Disk /dev/sdb: 215GB 
  4. Sector size (logical/physical): 512B/512B 
  5. Partition Table: msdos 
  6. Disk Flags:  
  7.  
  8. Number  Start   End    Size   Type     File system  標志 
  9.  1      1049kB  107GB  107GB  primary  ext4 
  10.  
  11. (parted)   

命令quit表示退出交互界面

選項-s表示非交互模式,此時命令寫在后面

  1. [root@idc-v-71252 ~]# parted -s /dev/sdb print 
  2. Model: VMware Virtual disk (scsi) 
  3. Disk /dev/sdb: 215GB 
  4. Sector size (logical/physical): 512B/512B 
  5. Partition Table: msdos 
  6. Disk Flags:  
  7.  
  8. Number  Start   End    Size   Type     File system  標志 
  9.  1      1049kB  107GB  107GB  primary  ext4 
  10.  
  11. [root@idc-v-71252 ~]# fdisk -l /dev/sdb1 
  12.  
  13. 磁盤 /dev/sdb1:107.4 GB, 107374182400 字節,209715200 個扇區 
  14. Units = 扇區 of 1 * 512 = 512 bytes 
  15. 扇區大小(邏輯/物理):512 字節 / 512 字節 
  16. I/O 大小(最小/***):512 字節 / 512 字節 
  17.  
  18. [root@idc-v-71252 ~]#  

Partition Table后的msdos表示為MBR分區,之所以兩個命令中sdb1分區大小顯示為107G而不是100G是因為在進行計算時使用1000 bytes作為1KB計數。

不能在已經做MBR分區的硬盤上做GTP分區,重做會導致原有分區被格式化。

這里在新磁盤/dev/sdc上做GTP分區:

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

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

命令mklabel指定分區格式(msdos或gtp),如果格式未知,使用print命令時會報錯:錯誤: /dev/sdc: unrecognised disk label

  1. (parted) mklabel gpt 

命令mkpart表示創建新分區,后面接分區類型(主分區還是擴展分區)、文件系統類型(ext4等,可省略)、起始點、結束點。

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

命令rm表示刪除分區,后面接分區號 

  1. (parted) rm 1                                                              
  2. (parted) p                                                                 
  3. Model: VMware Virtual disk (scsi) 
  4. Disk /dev/sdc: 215GB 
  5. Sector size (logical/physical): 512B/512B 
  6. Partition Table: gpt 
  7. Disk Flags:  
  8.  
  9. Number  Start  End  Size  File system  Name  標志 
  10.  
  11. (parted)   

下面使用非交互模式繼續

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

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

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

***再用parted做一個MBR擴展分區,命令如下: 

  1. parted -s /dev/sdd mklabel msdos 
  2. parted -s /dev/sdd mkpart extended 100GB 100% 
  3. parted -s /dev/sdd mkpart logical 100GB 200GB  

結果顯示為: 

  1. [root@idc-v-71252 temp]# parted -s /dev/sdd print 
  2. Model: VMware Virtual disk (scsi) 
  3. Disk /dev/sdd: 215GB 
  4. Sector size (logical/physical): 512B/512B 
  5. Partition Table: msdos 
  6. Disk Flags:  
  7.  
  8. Number  Start  End    Size   Type      File system  標志 
  9.  1      100GB  215GB  115GB  extended               lba 
  10.  5      100GB  200GB  100GB  logical 
  11.  
  12. [root@idc-v-71252 temp]# fdisk -l /dev/sdd 
  13.  
  14. 磁盤 /dev/sdd:214.7 GB, 214748364800 字節,419430400 個扇區 
  15. Units = 扇區 of 1 * 512 = 512 bytes 
  16. 扇區大小(邏輯/物理):512 字節 / 512 字節 
  17. I/O 大小(最小/***):512 字節 / 512 字節 
  18. 磁盤標簽類型:dos 
  19. 磁盤標識符:0x0006d495 
  20.  
  21.      設備 Boot      Start         End      Blocks   Id  System 
  22. /dev/sdd1       195311616   419430399   112059392    f  W95 Ext'd (LBA) 
  23. /dev/sdd5       195313664   390625279    97655808   83  Linux  

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

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

這些新分區都可以寫入配置文件/etc/fstab中實現重啟后自動掛載

LVM 邏輯卷管理

LVM是linux環境下對磁盤分區進行管理的一種機制,能夠使系統管理員更方便的為應用與用戶分配存儲空間。

術語

物理存儲介質(The physical media):指的是系統的存儲設備,如上面制作的分區/dev/sdb1、/dev/sdc1、/dev/sdd5

物理卷(PV: Physical Volume):相當于物理存儲介質,但添加了與LVM相關的管理參數。

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

邏輯卷(LV: Logical Volume):在卷組的基礎上劃分的邏輯分區(文件系統)。

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

LE(logical extent):邏輯卷也被劃分為被稱為LE的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,并且一一對應。

步驟

1、創建分區

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

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

2、創建PV

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

3、創建VG 

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

4、創建LV

  1. [root@idc-v-71252 ~]# lvcreate -n test_1 -L 50G test_lvm  
  2.   Logical volume "test_1" created. 
  3. [root@idc-v-71252 ~]#  
  4. #選項-n指定LV名為test_1,-L指定大小,也可以用選項-l指定LE的數量 
  5. #查看 
  6. [root@idc-v-71252 ~]# lvscan  
  7.   ACTIVE            '/dev/centos/swap' [7.88 GiB] inherit 
  8.   ACTIVE            '/dev/centos/home' [23.48 GiB] inherit 
  9.   ACTIVE            '/dev/centos/root' [48.09 GiB] inherit 
  10.   ACTIVE            '/dev/test_lvm/test_1' [50.00 GiB] inherit 
  11. [root@idc-v-71252 ~]#   

5、格式化及掛載 

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

這里文件系統之所以顯示為/dev/mapper/....是因為內核利用Mapper Device機制將設備做了映射:

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

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

命令

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

創建命令

  1. pvcreate vgcreate lvcreate 

查看命令分三類,顯示信息側重或詳細程度不同:

  1. pvs pvscan pvdisplay 
  2. vgs vgscan vgdisplay 
  3. lvs lvscan lvdisplay  

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

  1. pvchange vgchange lvchange 

擴容

  1. vgextend lvextend 

擴容LV舉例(注意內核可能不支持對某些文件系統的在線擴容,此時需要先將文件系統卸載): 

  1. [root@idc-v-71252 dev]# lvextend -L +10G /dev/test_lvm/test_1 
  2.   Size of logical volume test_lvm/test_1 changed from 50.00 GiB (6400 extents) to 60.00 GiB (7680 extents). 
  3.   Logical volume test_1 successfully resized. 
  4. [root@idc-v-71252 ~]# df -h /dev/mapper/test_lvm-test_1 
  5. 文件系統                     容量  已用  可用 已用% 掛載點 
  6. /dev/mapper/test_lvm-test_1   50G   33M   50G    1% /root/temp/test_1 
  7. #此時擴容還沒有生效,使用xfs_growfs對xfs文件系統進行在線擴容 
  8. [root@idc-v-71252 dev]# xfs_growfs /dev/test_lvm/test_1 
  9. meta-data=/dev/mapper/test_lvm-test_1 isize=256    agcount=4, agsize=3276800 blks 
  10.          =                       sectsz=512   attr=2, projid32bit=1 
  11.          =                       crc=0        finobt=0 
  12. data     =                       bsize=4096   blocks=13107200, imaxpct=25 
  13.          =                       sunit=0      swidth=0 blks 
  14. naming   =version 2              bsize=4096   ascii-ci=0 ftype=0 
  15. log      =internal               bsize=4096   blocks=6400, version=2 
  16.          =                       sectsz=512   sunit=0 blks, lazy-count=1 
  17. realtime =none                   extsz=4096   blocks=0, rtextents=0 
  18. data blocks changed from 13107200 to 15728640 
  19. [root@idc-v-71252 ~]# df -h /dev/mapper/test_lvm-test_1 
  20. 文件系統                     容量  已用  可用 已用% 掛載點 
  21. /dev/mapper/test_lvm-test_1   60G   33M   60G    1% /root/temp/test_1  

ext系列的文件系統擴容時需要使用命令resize2fs進行在線擴容

縮減(慎用) 

  1. vgreduce lvreduce 

改名

  1. vgrename lvrename 

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

本文簡要介紹了磁盤和LVM相關的管理命令,另外,還有一個介于物理磁盤和磁盤分區的中間層:RAID(獨立冗余磁盤陣列),它提供磁盤級別的數據冗余能力。當前服務器上一般都有RAID卡(硬件),關于它的設置以及原理就不在此敘述了,請搜索相關文檔。

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2020-11-19 08:44:35

Linux

2018-01-10 12:42:09

Linux磁盤文件系統

2009-12-22 09:43:13

Linux文件系統組織

2021-01-22 10:40:08

Linux文件內存

2009-12-18 17:08:10

Linux常見文件系統

2011-01-13 13:18:38

Linux網絡文件

2009-10-12 11:14:51

LinuxLinux磁盤文件系統管理

2010-04-07 18:42:42

Unix命令

2021-06-28 06:24:12

磁盤存儲VFS

2021-06-22 15:16:01

磁盤機械磁盤固態磁盤

2021-06-21 14:52:45

磁盤機械磁盤固態磁盤

2021-06-29 07:47:22

文件系統磁盤

2011-03-07 09:11:23

2010-03-02 15:09:26

Linux mount

2023-09-27 23:19:04

Linuxmount

2010-03-10 18:29:41

2011-01-13 14:10:30

Linux文件系統

2009-10-13 14:31:26

:Linux系統磁盤系統管理

2016-12-23 12:46:41

Linux命令進程與內存

2020-07-22 14:53:06

Linux系統虛擬文件
點贊
收藏

51CTO技術棧公眾號

国产精品国产三级国产aⅴ中文 | 麻豆蜜桃在线观看| 一个色综合av| 三级在线视频观看| 粉嫩绯色av一区二区在线观看| 精品一区二区三区视频日产| 天天综合精品| 日本视频久久久| 自拍欧美一区| 欧美性视频在线| 国产福利一区二区精品秒拍| 欧美肥臀大乳一区二区免费视频| 欧美日韩伦理一区二区| 在线视频欧美日韩| 国产欧美自拍| 不卡av在线网站| 大胆国模一区二区三区| 色综合视频一区中文字幕| 成人综合日日夜夜| 午夜精品在线视频| 亚洲人成网77777色在线播放| 久久免费视频这里只有精品| 成人爽a毛片免费啪啪红桃视频| 欧美猛男性生活免费| 日韩免费成人| 88xx成人精品| 日韩在线观看电影完整版高清免费悬疑悬疑 | 8v天堂国产在线一区二区| 欧美一区二区三区| 欧美videofree性高清杂交| 三级福利片在线观看| 亚洲激情视频在线| **欧美日韩在线| 黄视频网站在线观看| 欧美一二三区在线观看| heyzo高清中文字幕在线| 亚洲视频电影图片偷拍一区| 成人一级视频| 26uuu久久噜噜噜噜| 欧美综合一区| 久久亚洲高清| 国产成人av影院| 拍拍拍999自拍偷| 色综合色狠狠综合色| 污污视频在线看| 日韩在线不卡视频| 亚洲人成精品久久久 | 欧美一区二区精品| 成人国产一区| 国产精品一区二区久久久久| 99亚洲伊人久久精品影院红桃| 自拍另类欧美| 中文字幕人成不卡一区| 1769在线观看| 欧美精品亚州精品| 欧美午夜影院| 日本中文字幕网址| 亚洲成人福利片| 2020国产在线| 青青在线视频一区二区三区| 99国产精品私拍| 国产成a人亚洲精v品在线观看| 亚洲天堂免费看| 日本大胆在线观看| 欧美亚洲第一页| 美腿丝袜在线亚洲一区| 电影天堂久久| 亚洲丁香久久久| 色综合中文网| 久久久久久av无码免费网站下载| 亚洲国产成人av网| 国产精品毛片久久久久久久久久99999999| 国产精品视频免费观看www| 国产乱子伦一区二区三区国色天香| 360天大佬第二季在线观看| 亚洲精品成人免费| 精品产国自在拍| www.18av.com| 欧美午夜宅男影院在线观看| 国产日韩电影| 国产福利一区二区三区在线观看| a亚洲天堂av| 高清全集视频免费在线| 2020国产精品视频| 国产乱国产乱300精品| 日韩精品福利| 欧美精品第一页在线播放| 蜜桃久久久久久久| 污网站视频在线观看| 久久久av网站| 久久www成人_看片免费不卡| 免费免费啪视频在线观看| 最近的2019中文字幕免费一页| 好吊日精品视频| 男人天堂v视频| 日韩在线观看免费av| 日韩在线a电影| 亚洲欧美一区二区三区在线播放| 欧美裸体xxxx极品少妇| 狠狠色狠狠色合久久伊人| 成人免费黄色网页| 国产精品久久久久秋霞鲁丝| www.欧美色图| 欧美性xxx| 亚洲 国产 日韩 综合一区| 色婷婷久久久综合中文字幕 | 大胆欧美人体视频| 国产麻豆成人精品| 国产二区三区在线| 成人国产一区二区| 欧美日韩激情网| 亚洲综合图色| 91淫黄看大片| 成年无码av片在线| caoporn国产精品| 国产精品久久久久77777丨| 亚洲 欧洲 日韩| 亚洲激情免费观看| 久久66热re国产| 僵尸再翻生在线观看免费国语| 欧美日韩精品免费观看视一区二区| 色琪琪一区二区三区亚洲区| 91综合在线| 亚洲日本va中文字幕久久| 国产精品女视频| 亚洲一区二区视频在线观看| 精品国产91乱码一区二区三区四区 | 欧美视频二区| 天堂av电影在线观看| 国产精品免费视频xxxx| 尤物视频一区二区| 红桃成人av在线播放| 2020中文字幕在线播放| 国产精品女主播| 亚洲国产va精品久久久不卡综合| 国产免费av一区二区三区| aaaaaaa大片免费看| 国产成人精品综合久久久| 黄色一区二区三区| 欧美色一级片| 香蕉成人app免费看片| 性欧美精品一区二区三区在线播放 | 91精品国产吴梦梦| 日本乱人伦aⅴ精品| 天天操综合网| 免费理论片在线观看播放老| 国产精品久久久久久久电影| 亚洲一区二区不卡免费| 精品久久久久久久久久久aⅴ| 人人超碰在线| 国产精品一区在线观看| 日韩精品一区二区三区在线| 国产伦精品一区二区三区免费 | 日韩视频123| 精品综合久久久久久8888| 久久久久久久| 欧美成人免费高清视频| 久久男人资源视频| 欧美日韩国产丝袜美女| 羞羞答答国产精品www一本| 天堂√中文最新版在线| 黄色一级在线视频| 国产91精品久久久久久| 色婷婷久久久综合中文字幕| 日韩高清一区二区| 99国内精品久久久久| 三级黄色网址| 欧美在线播放一区二区| 久久精品国产免费观看| 国产精品毛片大码女人| 国产精品草草| 外国成人直播| 最猛黑人系列在线播放| 亚洲午夜精品国产| 97视频网站入口| 欧美精品乱码久久久久久| 男女激情网站| 超碰在线97av| 亚洲美女自拍视频| 亚洲欧美日韩一区二区| 在线日本成人| 四虎国产精品免费久久5151| 国产男女爽爽爽| 五月天丁香综合久久国产| 欧美大片在线看| 欧美亚洲国产一区二区三区| www.色精品| 亚洲网色网站| 亚洲国产综合在线观看| 麻豆av电影在线观看| 日韩精品xxxx| 国产欧美日韩综合一区在线观看| 中文字幕欧美亚洲| 在线精品视频一区二区| 久久久91精品国产一区二区精品 | 一级毛片电影| 在线视频一二三区| 91在线观看免费观看| 精品国产一区二区三区久久久狼| 色悠久久久久综合欧美99|