當前位置: 妍妍網 > 碼農

一步搞定:詳解 Linux 磁盤分區擴容方法

2024-05-28碼農

戳下方名片 ,關註並 星標

回復「 1024 」獲取 2TB 學習資源!

👉 體系化學習:

特色專欄

/ /

/ /

/ /

/ /

/ /

大家好,我是民工哥!

今天,同大家一起來探討一個基礎問題, Linu磁盤分區擴容

磁盤擴容

linux 分區常用命令:fdisk,修改MBR分區表,MBR格式,被修改的分區大小最大為2T

檢視磁盤vdc起始柱面

fdisk -l

  • vdc1分區 start--開始--2048

  • vdc1分區 end--結束--1048575999

  • 記錄好start的起始值

  • 檢視到磁盤vdc已從500G擴容到2T,下面需要對vdc1分區進行擴容

    首先先解除安裝掉磁盤 umonut /data

    再對磁盤分區擴容 fdisk /dev/vdc

  • p 打印

  • d 選擇分區序號刪除,刪完了不要保存也不要結束

  • 繼續操作
  • n 新建分區,選擇主分區原來的序號1

  • p 打印

  • 分區號:預設1

  • 起始 磁區:預設2048 #設定起始值為之前的start值

  • Last 磁區:4194303999 #整塊盤的容量都是vdc1的容量,也可以指定大小

  • wq保存

  • 這裏的檔格式是ext4

    e2fsck -f /dev/vdc1 #檢查
    resize2fs /dev/vdc1 #擴大

    掛載分區

    lsblk #再次檢視vdc1分區的大小
    mount #從新掛載vdc1分區到/data
    df -h #再次檢視磁盤掛載資訊

    :分區容量一定程度的遺失屬於正常現場,到這裏vdc1分區的擴容就完成了。可以看到vdc1已經從453G擴充套件到1.8T

    總結

  • 1、取消磁盤掛載

  • 2、 fdisk -uS /dev/vdb,記錄那個start的起始值

  • 3、然後按d選擇分分區序號刪除,刪完了不要保存也不要結束

  • 4、直接按n ----->選擇主分區原來的序號1

  • 5、設定起始值為之前的start值

  • 6、然後wq保存結束

  • 然後根據不同的磁盤分區格式去更新一下

    resize2fs #針對檔案系統ext2 ext3 ext4
    xfs_growfs #針對檔案系統xfs

    是要把原目錄刪掉重新格式化?不用重新格式化?

    上面做了mysql、es等資料庫有沒有影響?那你最好是把所有的都停了先,在做。這種沒人敢打包票完全正常的。都得做最壞的打算。但一般就是刪分區,然後起始位置相同建立新的分區end位置選到最後。除非你是邏輯卷,如果不是邏輯卷,你就至於這種方式。

    就是 刪分區和新建分區 的時候要註意下起始位置

    磁盤分區

    fdisk -l檢視磁盤容量和分區

    再對磁盤分區擴容 fdisk /dev/vdb

  • n 新建分區,選擇主分區原來的序號1

  • p 打印

  • 分區號:預設1

  • 起始 磁區:預設2048 #設定起始值為之前的start值

  • Last 磁區:4194303999 #整塊盤的容量都是vdc1的容量,也可以指定大小

  • wq保存

  • 格式化分區: mkfs.ext4 /dev/sdb1

    掛載分區到指定目錄: mount /dev/sdb1 /data/

    檢視掛載目錄: df -h

    開機自動掛載

    方法1:/etc/fstab

    /etc/fstab #配置硬碟自動掛載

    修改/etc/fstab,將掛載命令配置到fstab檔中使得掛載持久化,主機重新開機後將自動掛載硬碟

    方法2:/etc/rc.local

    開發初始化指令碼掛載硬碟

    /etc/rc.local #檔本質上是一個shell檔,可用於添加開機啟動命令,系統啟動時將按照順序執行其中的命令。

    因此可以直接將掛載命令寫入到該shell檔中即可

    掛載命令: mount /dev/vdb /data/

    方法3:使用Systemd自動掛載硬碟

    Linux Systemd,不僅可以用來關閉和開啟服務,也提供處理掛載和自動掛載檔案系統的方式,以服務的方式管理檔案系統的掛載。

    Systemd擴充套件了fstab檔的定義方式,合理使用Systemd提供的掛載選項,可以完美解決以前使用fstab時的一些痛點。

  • systemd.mount可以讓那些要求在網路可用時的檔案系統在網路可用的情況下才去掛載,還可以定義等待網路可用的超時時間,從而避免在開機過程中長時間卡中。

  • systemd可以讓某個掛載項自動開始掛載和自動解除安裝,而不是在開機時掛載後永久掛載在後台。

  • systemd可以讓系統跳過失敗的掛載,避免系統因硬碟掛載問題導致啟動失敗,無法進入系統(只能進行臨時修復系統)

  • 當前Digitalocean(詳情)提供的硬碟掛載服務正是使用了systemd的掛載方式。檢視 /etc/systemd/system/ 目錄即可看到名為 mnt-volume.mount

    該檔定義了一個掛載項:

    [Unit]
    Description=Mount DO Volume volume
    [Mount]
    What=/dev/disk/by-uuid/d946870c-ef31-48ee-a9f1-446acaa56f46
    Where=/mnt/volume
    Options=defaults,nofail,discard,noatime
    Type=ext4
    [Install]
    WantedBy = multi-user.target

    透過這樣的掛載方式,可以像管理服務一樣管理掛載:

    systemctl status mnt-volume.mount
    systemctl ebable mnt-volume.mount
    systemctl disable mnt-volume.mount
    systemctl start mnt-volume.mount
    systemctl stop mnt-volume.mount
    Systemd的檔掛載選項非常豐富,具體情況可自行查詢學習。

    方法4:透過AutoFs服務來管理硬碟掛載

    AutoFs服務程式與mount命令不同之處在於它是一種守護行程,只有檢測到使用者試圖存取一個尚未掛載的檔案系統時,才自動的檢測並掛載該檔案系統。

    AutoFs非常方便,主要有兩點:

  • 設定開機不一定要掛載的目錄,當使用者存取對應檔案系統時,才實作自動掛載。

  • 使用者不使用自動掛載的目錄一段時間之後,檔案系統會被自動掛載。(預設5分鐘)

  • AutoFs屬於第三方軟體,需要額外安裝: yum install autofs -y

    AutoFs的具體使用方法可自行查詢學習。

    掛載時錯誤解決

    錯誤1:防寫,將以唯讀方式掛載

    格式化分區: mkfs.ext4 /dev/sdb1 可參考標題2磁盤分區當中的格式化分區操作,重新掛載即可。

    錯誤2:不能讀取超塊

    可進行磁盤修復,如下:

    # 磁盤目錄:/dev/vdb
    fsck.ext3 -B 1024 /dev/vdb

    重新掛載即可。

    來源:https://cnblogs.com/aerfazhe/p/17468905.html

    👍 如果你喜歡這篇文章,請點贊並分享給你的朋友!

    公眾號讀者專屬技術群

    構建高品質的技術交流社群,歡迎從事後端開發、運維技術進群( 備註崗位,已在技術交流群的請勿重復添加微信好友 )。主要以技術交流、內推、行業探討為主,請文明發言。 廣告人士勿入,切勿輕信私聊,防止被騙。

    掃碼加我好友,拉你進群

    PS:因為公眾號平台更改了推播規則,如果不想錯過內容,記得讀完點一下 在看 ,加個 星標 ,這樣每次新文章推播才會第一時間出現在你的訂閱列表裏。 在看 支持我們吧!