天天看點

day14-磁盤管理df/du/fdisk/parted指令

4.1:df指令:

總稱:report file system disk space usage

1、df:用來檢視系統磁盤容量(總容量 已使用及剩餘容量、)使用情況:預設是以KB為機關顯示:

文法:df  [ 選項 ] 參數

選項如下:

-h:使用合适的機關顯示:

-i:檢視inode的使用情況:

-k:以KB為機關顯示:

-m:以MB為機關顯示:

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

1

2

3

4

5

6

7

8

<code>[root@localhost ~]</code><code># df                 #預設df時,以KB為機關顯示:</code>

<code>檔案系統          1K-塊    已用     可用 已用% 挂載點</code>

<code>/dev/sda3</code>      <code>17814528 1123440 16691088    7% /</code>

<code>devtmpfs         489980       0   489980    0% </code><code>/dev</code>

<code>tmpfs            499848       0   499848    0% </code><code>/dev/shm</code>

<code>tmpfs            499848    6884   492964    2% </code><code>/run</code>

<code>tmpfs            499848       0   499848    0% </code><code>/sys/fs/cgroup</code>

<code>/dev/sda1</code>       <code>1038336  121732   916604   12% </code><code>/boot</code>

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

上述示例簡單說明:

第一列:該檔案分區名稱:

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

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

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

2、常用選項-h:以合适(更人性化的機關顯示)

<code>[root@localhost ~]</code><code># df -h            #顯示更直覺,更人性化</code>

<code>檔案系統        容量  已用  可用 已用% 挂載點</code>

<code>/dev/sda3</code>        <code>17G  1.1G   16G    7% /</code>

<code>devtmpfs        479M     0  479M    0% </code><code>/dev</code>

<code>tmpfs           489M     0  489M    0% </code><code>/dev/shm</code>

<code>tmpfs           489M  6.8M  482M    2% </code><code>/run</code>

<code>tmpfs           489M     0  489M    0% </code><code>/sys/fs/cgroup</code>

<code>/dev/sda1</code>      <code>1014M  119M  896M   12% </code><code>/boot</code>

3、常用選項還有-i:檢視目前系統中inode的使用情況:

9

10

<code>[root@localhost ~]</code><code># df -ih       #則是以更人性化的機關來顯示inode的使用情況:</code>

<code>檔案系統       Inode 已用(I) 可用(I) 已用(I)% 挂載點</code>

<code>/dev/sda3</code>       <code>8.5M     32K    8.5M       1% /</code>

<code>devtmpfs        120K     381    120K       1% </code><code>/dev</code>

<code>tmpfs           123K       1    123K       1% </code><code>/dev/shm</code>

<code>tmpfs           123K     474    122K       1% </code><code>/run</code>

<code>tmpfs           123K      16    123K       1% </code><code>/sys/fs/cgroup</code>

<code>/dev/sda1</code>       <code>512K     327    512K       1% </code><code>/boot</code>

<code>tmpfs           123K       1    123K       1% </code><code>/run/user/0</code>

<code>tmpfs           123K       1    123K       1% </code><code>/run/user/1000</code>

4.2:du指令:     預設以4KB的大小機關

1、du:用來檢視某個檔案或目錄所占用空間的大小,預設顯示是KB:

文法:du  [ 選項 ]  參數

-a:顯示目前目錄下所有子檔案和目錄的大小:

-b:以byte為機關顯示:

-h:以合适的機關顯示:用法和df指令下h相同:

-c:顯示各個檔案/目錄的大小,并列出總和:

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

<code>[root@localhost ~]</code><code># du           #預設以KB為機關顯示:</code>

<code>16      ./.</code><code>ssh</code>

<code>0       .</code><code>/yuanhh/2</code>

<code>0       .</code><code>/yuanhh/4</code>

<code>0       .</code><code>/yuanhh</code>

<code>72      .</code>

2、用法:sh:用于檢視一個指定檔案或目錄的大小:

<code>[root@localhost ~]</code><code># du -sh /tmp/     #檢視/tmp/目錄的大小,并隻列出總和:</code>

<code>8.0K    </code><code>/tmp/</code>

3、用法:分别用du和ls來檢視某個檔案,發現它倆的數值不一樣:

<code>[root@localhost ~]</code><code># du -sh /etc/passwd</code>

<code>4.0K    </code><code>/etc/passwd</code>

<code>[root@localhost ~]</code><code># ls -lh /etc/passwd</code>

<code>-rw-r--r-- 1 root root 964 11月  2 01:27 </code><code>/etc/passwd</code>

注: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列印目前磁盤的使用情況:

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

<code>[root@localhost ~]</code><code># fdisk /dev/sdb    #使用fdisk指令來格式化分區:</code>

<code>歡迎使用 </code><code>fdisk</code> <code>(util-linux 2.23.2)。</code>

<code>Device does not contain a recognized partition table</code>

<code>使用磁盤辨別符 0x46fecc49 建立新的 DOS 磁盤标簽。</code>

<code>指令(輸入 m 擷取幫助):m        </code><code>#分區的指令介紹:</code>

<code>指令操作</code>

<code>   </code><code>a   toggle a bootable flag</code>

<code>   </code><code>b   edit bsd disklabel                </code><code>#磁盤标簽編輯</code>

<code>   </code><code>c   toggle the dos compatibility flag</code>

<code>   </code><code>d   delete a partition                   </code><code>#删除一個分區,較常用</code>

<code>   </code><code>g   create a new empty GPT partition table</code>

<code>   </code><code>G   create an IRIX (SGI) partition table</code>

<code>   </code><code>l   list known partition types</code>

<code>   </code><code>m   print this menu</code>

<code>   </code><code>n   add a new partition                  </code><code>#建立磁盤分區,較常用</code>

<code>   </code><code>o   create a new empty DOS partition table</code>

<code>   </code><code>p   print the partition table            </code><code>#列印目前分區,較常用</code>

<code>   </code><code>q   quit without saving changes          </code><code>#不儲存并退出,較常用</code>

<code>   </code><code>s   create a new empty Sun disklabel</code>

<code>   </code><code>t   change a partition's system </code><code>id</code>

<code>   </code><code>u   change display</code><code>/entry</code> <code>units</code>

<code>   </code><code>v</code>   <code>verify the partition table</code>

<code>   </code><code>w   write table to disk and </code><code>exit</code>        <code>#儲存後并退出</code>

<code>   </code><code>x   extra functionality (experts only)</code>

<code>指令(輸入 m 擷取幫助):n    </code><code>#此時輸入n建立分區</code>

<code>Partition </code><code>type</code><code>:        主+邏輯分區=4</code>

<code>   </code><code>p   primary (0 primary, 0 extended, 4 </code><code>free</code><code>)    </code><code>#主分區</code>

<code>   </code><code>e   extended                </code><code>#擴充分區</code>

<code>Select (default p): p      </code><code>#輸入建立主分區</code>

<code>分區号 (1-4,預設 1):1    </code><code>#預設是分區号1.</code>

<code>起始 扇區 (2048-10485759,預設為 2048):</code>

<code>将使用預設值 2048</code>

<code>Last 扇區, +扇區 or +size{K,M,G} (2048-10485759,預設為 10485759):+1.5G </code><code>#可預設也可以手動設定。</code>

<code>分區 1 已設定為 Linux 類型,大小設為 1 GiB</code>

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

建立完成後,我們用p指令來檢視下:

指令(輸入 m 擷取幫助):p   #使用p指令來檢視

磁盤 /dev/sdb:5368 MB, 5368709120 位元組,10485760 個扇區

磁盤辨別符: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.

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

<b>3、那我們如何删除一個分區呢:如下:</b>

指令(輸入 m 擷取幫助):d    #輸入d指令則删除。

分區号 (1-4,預設 4):3     #删除第三個分區:

分區 3 已删除

指令(輸入 m 擷取幫助):p

裝置 Boot      Start         End      Blocks   Id  System

/dev/sdb4         6293504     8390655     1048576   83  Linux

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

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

注意:邏輯分區可以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

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

添加邏輯分區 7

No free sectors available

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

5、此時再使用p檢視分區表資訊:如下:

指令(輸入 m 擷取幫助):p       #使用指令來檢視: 

/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 已删除

/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選項可以删除你想要删除的那個分區,需要注意的是,當擴充分區中有子分區(邏輯分區)的時候,删除擴充分區會連同子分區一起删除,是以當我們在删除分區的時候,一定要謹慎,謹慎,謹慎!!!

3、擴充分區parted

當在指令行輸入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等。

本文轉自 芬野 51CTO部落格,原文連結:http://blog.51cto.com/yuanhaohao/1978599,如需轉載請自行聯系原作者

繼續閱讀