1. 程式人生 > >day14:磁盤管理df/du/fdisk/parted命令

day14:磁盤管理df/du/fdisk/parted命令

df du fdisk

4.1:df命令:

總稱:report file system disk space usage

1、df:用來查看系統磁盤容量(總容量 已使用及剩余容量、)使用情況:默認是以KB為單位顯示:

語法:df [ 選項 ] 參數

選項如下:

-h:使用合適的單位顯示:

-i:查看inode的使用情況:

-k:以KB為單位顯示:

-m:以MB為單位顯示:

-a:顯示系統中在用的所有分區(不常用)

[root@localhost ~]# df                 #默認df時,以KB為單位顯示:
文件系統          1K-塊    已用     可用 已用% 掛載點
/dev/sda3      17814528 1123440 16691088    7% /
devtmpfs         489980       0   489980    0% /dev
tmpfs            499848       0   499848    0% /dev/shm
tmpfs            499848    6884   492964    2% /run
tmpfs            499848       0   499848    0% /sys/fs/cgroup
/dev/sda1       1038336  121732   916604   12% /boot

:重點關註已用%,當超過80%-90%時要註意了:

上述示例簡單說明:

第一列:該文件分區名稱:

第二列:該分區的總容量大小:

第三列:該分區的已使用容量:

第四列:該分區的剩余容量:

2、常用選項-h:以合適(更人性化的單位顯示)

[root@localhost ~]# df -h            #顯示更直觀,更人性化
文件系統        容量  已用  可用 已用% 掛載點
/dev/sda3        17G  1.1G   16G    7% /
devtmpfs        479M     0  479M    0% /dev
tmpfs           489M     0  489M    0% /dev/shm
tmpfs           489M  6.8M  482M    2% /run
tmpfs           489M     0  489M    0% /sys/fs/cgroup
/dev/sda1      1014M  119M  896M   12% /boot

3、常用選項還有-i:查看當前系統中inode的使用情況:

[root@localhost ~]# df -ih       #則是以更人性化的單位來顯示inode的使用情況:
文件系統       Inode 已用(I) 可用(I) 已用(I)% 掛載點
/dev/sda3       8.5M     32K    8.5M       1% /
devtmpfs        120K     381    120K       1% /dev
tmpfs           123K       1    123K       1% /dev/shm
tmpfs           123K     474    122K       1% /run
tmpfs           123K      16    123K       1% /sys/fs/cgroup
/dev/sda1       512K     327    512K       1% /boot
tmpfs           123K       1    123K       1% /run/user/0
tmpfs           123K       1    123K       1% /run/user/1000

4.2:du命令: 默認以4KB的大小單位

1、du:用來查看某個文件或目錄所占用空間的大小,默認顯示是KB:

語法:du [ 選項 ] 參數

選項如下:

-a:顯示當前目錄下所有子文件和目錄的大小:

-b:以byte為單位顯示:

-k:以KB為單位顯示:

-m:以MB為單位顯示:

-h:以合適的單位顯示:用法和df命令下h相同:

-c:顯示各個文件/目錄的大小,並列出總和:

-s:只顯示總和,一般結合du -sh 使用:

[root@localhost ~]# du           #默認以KB為單位顯示:
16      ./.ssh
0       ./yuanhh/2
0       ./yuanhh/4
0       ./yuanhh
72      .

2、用法:sh:用於查看一個指定文件或目錄的大小:

[root@localhost ~]# du -sh /tmp/     #查看/tmp/目錄的大小,並只列出總和:
8.0K    /tmp/

3、用法:分別用du和ls來查看某個文件,發現它倆的數值不一樣

[root@localhost ~]# du -sh /etc/passwd
4.0K    /etc/passwd
[root@localhost ~]# ls -lh /etc/passwd
-rw-r--r-- 1 root root 964 11月  2 01:27 /etc/passwd

註:du命令顯示的4KB(默認情況下不到4KB,也會以4KB顯示,以為一個塊是4KB).

ls命令是顯示的真實大小964byte。

4.3:磁盤分區fdisk/parted

1、fdisk:用來給系統磁盤來分區(小於2TB):

ptarted:給大於2TB的硬盤來分區:

語法:fdisk -l 分區名稱

選項:fdisk -l後不加分區名稱,則列出系統的所有分區表:

fdisk -l加上分區名稱,則只列出此設備分區的分區表:

[root@localhost ~]# fdisk -l /dev/sda #可以查看sda分區表的一些詳細信息:

磁盤 /dev/sda:21.5 GB, 21474836480 字節,41943040 個扇區

Units = 扇區 of 1 * 512 = 512 bytes

扇區大小(邏輯/物理):512 字節 / 512 字節

I/O 大小(最小/最佳):512 字節 / 512 字節

磁盤標簽類型:dos

磁盤標識符:0x000cb780

設備 Boot Start End Blocks Id System

/dev/sda1 * 2048 2099199 1048576 83 Linux

/dev/sda2 2099200 6293503 2097152 82 Linux swap / Solaris

/dev/sda3 6293504 41943039 17824768 83 Linux

2、使用fdisk來對磁盤進行分區,首先在虛擬機裏添加一塊虛擬磁盤,如下:

對添加的磁盤/dev/sdb進行分區,並用p打印當前磁盤的使用情況:

[root@localhost ~]# fdisk /dev/sdb    #使用fdisk命令來格式化分區:
歡迎使用 fdisk (util-linux 2.23.2)。
Device does not contain a recognized partition table
使用磁盤標識符 0x46fecc49 創建新的 DOS 磁盤標簽。
命令(輸入 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    #此時輸入n新建分區
Partition type:        主+邏輯分區=4
   p   primary (0 primary, 0 extended, 4 free)    #主分區
   e   extended                #擴展分區
Select (default p): p      #輸入創建主分區
分區號 (1-4,默認 1):1    #默認是分區號1.
起始 扇區 (2048-10485759,默認為 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-10485759,默認為 10485759):+1.5G #可默認也可以手動設置。
分區 1 已設置為 Linux 類型,大小設為 1 GiB

此時我們按照如上步驟分別創建分區2 分區3 分區4:

創建完成後,我們用p命令來查看下:

命令(輸入 m 獲取幫助):p #使用p命令來查看

磁盤 /dev/sdb:5368 MB, 5368709120 字節,10485760 個扇區

Units = 扇區 of 1 * 512 = 512 bytes

扇區大小(邏輯/物理):512 字節 / 512 字節

I/O 大小(最小/最佳):512 字節 / 512 字節

磁盤標簽類型:dos

磁盤標識符:0x41fc3f2d

設備 Boot Start End Blocks Id System

/dev/sdb1 2048 2099199 1048576 83 Linux

/dev/sdb2 2099200 4196351 1048576 83 Linux

/dev/sdb3 4196352 6293503 1048576 83 Linux

/dev/sdb4 6293504 10485759 2096128 83 Linux

命令(輸入 m 獲取幫助):n

If you want to create more than four partitions, you must replace a

primary partition with an extended partition first.

如上:當我們創建四個分區後,再創建時,系提示如果要創建分區,你必須刪除一個分區才可以:

3、那我們如何刪除一個分區呢:如下:

命令(輸入 m 獲取幫助):d #輸入d命令則刪除。

分區號 (1-4,默認 4):3 #刪除第三個分區:

分區 3 已刪除

命令(輸入 m 獲取幫助):p

設備 Boot Start End Blocks Id System

/dev/sdb1 2048 2099199 1048576 83 Linux

/dev/sdb2 2099200 4196351 1048576 83 Linux

/dev/sdb4 6293504 8390655 1048576 83 Linux

註意:如上列發現,雖然我們刪除的分區3,但是分區4不會向上頂替。

4、當需要創建多個磁盤時,則需要創建先創建擴展分區,再創建邏輯分區:如下:

註意:邏輯分區可以N個,沒有上限,主要依據容量大小:

命令(輸入 m 獲取幫助):n

Partition type:

p primary (3 primary, 0 extended, 1 free)

e extended

Select (default e): e #選擇擴展分區:

已選擇分區 3

起始 扇區 (4196352-10485759,默認為 4196352):

Last 扇區, +扇區 or +size{K,M,G} (4196352-6293503,默認為 6293503):+500M

分區 3 已設置為 Extended 類型,大小設為 500 MiB

命令(輸入 m 獲取幫助):n

All primary partitions are in use

添加邏輯分區 5 #添加創建邏輯分區5

Last 扇區, +扇區 or +size{K,M,G} (4198400-5220351,默認為 5220351):+150M

分區 5 已設置為 Linux 類型,大小設為 150 MiB

命令(輸入 m 獲取幫助):N

添加邏輯分區 5 #添加創建邏輯分區6

起始 扇區 (4507648-5220351,默認為 4507648):

Last 扇區, +扇區 or +size{K,M,G} (4507648-5220351,默認為 5220351):

分區 6 已設置為 Linux 類型,大小設為 348 MiB

命令(輸入 m 獲取幫助):N

All primary partitions are in use

添加邏輯分區 7

No free sectors available

如上例:當磁盤沒有容量時,會提示沒有空間:

5、此時再使用p查看分區表信息:如下:

命令(輸入 m 獲取幫助):p #使用命令來查看:

設備 Boot Start End Blocks Id System

/dev/sdb1 2048 2099199 1048576 83 Linux

/dev/sdb2 2099200 4196351 1048576 83 Linux

/dev/sdb3 4196352 5220351 512000 5 Extended

/dev/sdb5 4198400 4812799 307200 83 Linux

/dev/sdb6 4814848 5220351 202752 83 Linux

會發現,創建的邏輯分區是從/dev/sdb5開始的,並不會向向上移動,也就是說,邏輯分區一定是從sdb5開始的。

5、如果刪除一個邏輯分區的話,下面的分區會不會向上移動的邏輯分區號呢。如下:

我們刪除/dev/sdb5:

命令(輸入 m 獲取幫助):d #刪除一個分區:

分區號 (1-6,默認 6):5

分區 5 已刪除

命令(輸入 m 獲取幫助):p

設備 Boot Start End Blocks Id System

/dev/sdb1 2048 2099199 1048576 83 Linux

/dev/sdb2 2099200 4196351 1048576 83 Linux

/dev/sdb3 4196352 5220351 512000 5 Extended

/dev/sdb4 6293504 8390655 1048576 83 Linux

/dev/sdb5 4814848 5220351 202752 83 Linux

總結:如果我們刪除了其中一個邏輯分區的話,它的下一個邏輯分區號會頂替它的邏輯分區號,往前面排序:

註意:退出保存的話一個要按W才可以:


11:高級分區工具:parted

parted 用法

parted /dev/sdb mklable #創建分區表:

parted /dev/sdb mklable ext3 0 500000 #創建500G的分區sdb1:

mkfs.ext3 /dev/sdb1 #將分區/dev/sdb1格式化成ext3格式:

創建swap交換分區:

parted /dev/sdb mkpart swap 500000 504000 #創建4G的交換分區:

mkswap /dev/sdb2 #將deb/sdb2創建為交換分區:

swapon /dev/sdb2 #激活/dev/sdb2這個分區:

如果想讓系統掛載這個分區,需手工編輯/etc/fstab文件:

/dev/sdb1 / ext3 defaults 0 0

/dev/sdb2 swap ext3 defaults 0 0

註意:如果有分區被誤刪除,可以立即恢復:如下:

parted /dev/sdb rm 3 #刪除/dev/sdb3

parted /dev/sdb rescue 504000 514000 #然後依照顯示,輸入yes即可:




附記:以下內容來自於百度:

1、磁盤分區註意事項總結:

  • 當我們在創建磁盤分區的時候,有三種分區可選,擴展分區(e),主分區(p),邏輯分區(l)。

  • 我們最多只能創建4個分區(4個中不包括邏輯分區),如果想創建多個分區,可以是3個主分區和1個擴展分區組合。然後在擴展分區中,創建邏輯分區(可以創建無限個邏輯分區)。
    需要註意的是,擴展分區相當於一個空殼子,是不可以格式化的(不可以使用),只有它的子分區才可以格式化。

  • 在fdisk中劃分分區的時候,使用d選項可以刪除你想要刪除的那個分區,需要註意的是,當擴展分區中有子分區(邏輯分區)的時候,刪除擴展分區會連同子分區一起刪除,所以當我們在刪除分區的時候,一定要謹慎,謹慎,謹慎!!!

    2、擴展學習 parted分區gpt格式 http://www.apelearn.com/bbs/thread-7243-1-1.html

    3、擴展分區parted

  • parted工具常用功能:

  • 我們在課上講的fdisk分區工具,它的分區格式為MBR,特點是,最多分4個主分區,磁盤大小不能超過2T。而GPT分區格式,突破了這些限制,它沒有主分區、擴展分區、邏輯分區之分,在一塊磁盤上最多可以分128個分區出來,支持大於2T的分區,最大卷可達18EB。 相信,隨著存儲級別的升級,將來的分區格式逐漸會淘汰MBR,而GPT成為主流.

  • 當在命令行輸入parted後,進入parted命令的交互模式。輸入help會顯示幫助信息,下面講一下常用功能:

  • check:簡單檢查文件系統。建議使用其他命令檢查文件系統,如fsck

  • help:顯示幫助信息

  • mklabel:創建分區表,即使用msdos(MBR)還是使用gpt,或者是其他方式分區表

  • mkfs:創建文件系統。該命令不支持ext3格式,因此建議不使用,最好使用parted分區完成之後,退出parted交互模式,用其他命令濟寧分區,eg:mkfs.ext3

  • mkpart:創建分區

    • 語法:
      mkpart PART-TYPE [FS-TYPE] START END

    • PART-TYPE類型主要有primary(主分區), extended(擴展分區), logical(邏輯區). 擴展分區和邏輯分區只對msdos。

    • fs-type 文件系統類型,主要有fs32,NTFS,ext2,ext3等。

    • start end 分區的起始和結束位置。

  • mkpartfs: 建立分區及其文件系統。目前還不支持ext3文件系統,因此不建議使用該功能。最後是分好區後,退出parted,然後用其他命令建立文件系統。

  • print: 輸出分區信息。該功能有3個選項:

    • free: 顯示該盤的所有信息,並顯示磁盤剩余空間

    • number: 顯示指定的分區的信息

    • all: 顯示所有磁盤信息

  • resize: 調整指定的分區的大小。目前對ext3格式支持不是很好,所以不建議使用該功能。

  • rescue: 恢復不小心刪除的分區。如果不小心用parted的rm命令刪除了一個分區,那麽可以通過rescue功能進行恢復。恢復時需要給出分區的起始和結束的位置。然後parted就會在給定的範圍內去尋找,並提示恢復分區。

  • rm:刪除分區。命令格式 rm number 。如:rm 3 就是將編號為3的分區刪除。

  • select:選擇設備。當輸入parted命令後直接回車進入交互模式是,如果有多塊硬盤,需要用select 選擇要操作的硬盤。如:select /dev/sdb。

  • set:設置標記。更改指定分區編號的標誌。標誌通常有如下幾種:boot hidden raid lvm 等。 boot 為引導分區,hidden 為隱藏分區,raid 軟raid,lvm 為邏輯分區。eg:set 3 boot on 設置3分區為啟動分區。

  • 註: 以上內容為parted常用的功能,由於該工具目前對ext3支持得不是很好,因此有些功能無法應用,比如move(移動分區)和resize等。

day14:磁盤管理df/du/fdisk/parted命令