<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      縮小或擴大linux ext4文件系統(包含在線擴大根文件系統步驟)



      概念

      一般而言,我們喜歡把分區和文件系統混為一談,實際上,它們是有區別的。它們的關系是:文件系統是建立在分區上的,分區大小要大于等于文件系統大?。ň拖袢萜骱蜕匙樱萜黧w積要大于等于沙子體積)。
      縮小分區的操作步驟是:先縮小文件系統,然后再縮小分區。
      擴大分區的操作步驟是:先擴大分區,然后再擴大文件系統。



      起因

      我的樹莓派U盤有128G大小,里面安裝了Raspi OS,已經有兩個分區,第二個分區是根分區?,F在我把第二分區縮小成30GB,然后將多余的容量用于創建一個exfat的分區,用于windows。

      后文包含的內容:

      • 離線縮小根分區上的文件系統
        需要把待縮容的磁盤插到一個已啟動的linux系統
      • 在線擴大根分區上的文件系統
        此時待擴容的磁盤上的linux系統已啟動,根分區已掛載至/

      后文未包含的內容:

      • 在線縮小根分區上的文件系統
        操作很麻煩,只介紹原理:因為在掛載狀態下,使用resize2fs命令是不允許縮小文件系統的。如果沒有另一個Linux系統可用的情況下,想要在線縮小根分區文件系統大小,可以使用initram hook形式來執行e2fsck和resize2fs。因為此時操作系統啟動過程還處于initram階段,根文件系統還沒有掛載。



      離線縮小根分區上的文件系統操作步驟

      步驟簡述:

      1. 查看分區情況
      2. 縮小第二分區上的文件系統
      3. 使用fdisk或parted命令縮小第二分區
      4. 驗證結果

      1. 查看分區情況

      root用戶執行:fdisk -l /dev/sdb # 注意fdisk只能支持MBR分區表,parted支持MBR/GPT分區表,如果你的磁盤是GPT的,可以使用parted命令: parted /dev/sdb unit s p (unit s表示按扇區查看)
      回顯如下:

      Disk /dev/sdb: 115.5 GiB, 124017180672 bytes, 242221056 sectors    ### 該磁盤大小115GB多點
      Disk model: DataTraveler 3.0
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: dos
      Disk identifier: 0xdf3f5459
      
      Device     Boot   Start       End   Sectors  Size Id Type
      /dev/sdb1         16384   1064959   1048576  512M  c W95 FAT32 (LBA)
      /dev/sdb2       1064960 242221055 241156096  115G 83 Linux               ###  第二分區大小115G, 注意起始扇區 1064960, 后面會用到 ###
      

      root用戶執行:dd if=/dev/sdb of=/root/first-16384-sector.dd count=16384 # 備份分區表,此步非必須,只是為了以防萬一,可以用dd命令恢復分區表。備份分區表(這里直接備份前16384個扇區,MBR分區表存在于第一個扇區,我這里備份冗余了一點,數字16384可參考前面fdisk命令)。
      回顯如下:

      16384+0 records in
      16384+0 records out
      8388608 bytes (8.4 MB, 8.0 MiB) copied, 0.456542 s, 18.4 MB/s
      

      2. 縮小第二分區上的文件系統

      root用戶執行:e2fsck -f /dev/sdb2 # 先強制檢查文件系統,注意-f選項
      回顯如下:

      e2fsck 1.47.0 (5-Feb-2023)
      Pass 1: Checking inodes, blocks, and sizes
      Pass 2: Checking directory structure
      Pass 3: Checking directory connectivity
      Pass 4: Checking reference counts
      Pass 5: Checking group summary information
      rootfs: 61657/3816960 files (0.2% non-contiguous), 786615/15728640 blocks
      

      root用戶執行:resize2fs /dev/sdb2 30720M # 改第二分區的文件系統大小為30G
      回顯如下:

      resize2fs 1.47.0 (5-Feb-2023)
      Resizing the filesystem on /dev/sdb2 to 7864320 (4k) blocks.
      

      3. 縮小第二分區

      分別用fdisk和parted兩種方法演示。fdisk命令步驟比較多,parted命令只需要一條命令。

      下面的操作是fdisk的縮小第二分區的操作方法,有點繁瑣。

      fdisk /dev/sdb # 注意,這里是sdb不是sdb2,下面進入fdisk操作界面

      Welcome to fdisk (util-linux 2.38.1).
      Changes will remain in memory only, until you decide to write them.
      Be careful before using the write command.
      
      Command (m for help): p    ### p命令查看當前分區情況 ###
      Disk /dev/sdb: 115.5 GiB, 124017180672 bytes, 242221056 sectors
      Disk model: DataTraveler 3.0
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: dos
      Disk identifier: 0xdf3f5459
      
      Device     Boot   Start       End   Sectors  Size Id Type
      /dev/sdb1         16384   1064959   1048576  512M  c W95 FAT32 (LBA)
      /dev/sdb2       1064960 242221055 241156096  115G 83 Linux
      
      Command (m for help): d         ### d命令用于刪除分區 ### 
      Partition number (1,2, default 2): 2  ### 刪除第二分區 ###
      
      Partition 2 has been deleted.
      
      Command (m for help): n   ### n命令新建分區 ###
      Partition type
         p   primary (1 primary, 0 extended, 3 free)
         e   extended (container for logical partitions)
      Select (default p): p     ### 分區類型是p, 也就是主分區 ###
      Partition number (2-4, default 2): 2   ### 分區號是2,第二個分區, 具體是第幾個分區,可以看前面的1. 查看分區情況步驟的fdisk -l命令輸出###
      First sector (2048-242221055, default 2048): 1064960   ### 分區的起始扇區的值,其值參考第一步的值 ###
      Last sector, +/-sectors or +/-size{K,M,G,T,P} (1064960-242221055, default 242221055): +32768M  ### 分區的末尾值,這里使用32GB,為了安全起見,比前面的30GB大一點 ###
      
      Created a new partition 2 of type 'Linux' and of size 32 GiB.
      Partition #2 contains a ext4 signature.
      
      Do you want to remove the signature? [Y]es/[N]o: n   ### 是否移除簽名, ??!注意這里選擇“否”,不移除ext4簽名 ??!**
      
      Command (m for help): p   ### 查看新分區情況 ###
      
      Disk /dev/sdb: 115.5 GiB, 124017180672 bytes, 242221056 sectors
      Disk model: DataTraveler 3.0
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: dos
      Disk identifier: 0xdf3f5459
      
      Device     Boot   Start      End  Sectors  Size Id Type
      /dev/sdb1         16384  1064959  1048576  512M  c W95 FAT32 (LBA)
      /dev/sdb2       1064960 68173823 67108864   32G 83 Linux
      
      Command (m for help): w   ### w命令寫入變更 ###
      The partition table has been altered.
      Calling ioctl() to re-read partition table.
      Syncing disks.
      

      下面是parted命令縮小第二分區的操作過程

      簡潔版就是直接修改分區大小,只有一條命令parted /dev/sdb resizepart 2 33313M # 這里的33313MB大致是:第二分區之前的空間+32GB=33313M
      繁瑣版本是先刪除第二分區,再建立一個新分區,操作如下:

      root@raspberrypi:~# parted /dev/sdb
      GNU Parted 3.5
      Using /dev/sdb
      Welcome to GNU Parted! Type 'help' to view a list of commands.
      (parted) p   ### p命令查看當前分區情況 ###
      Model: Kingston DataTraveler 3.0 (scsi)
      Disk /dev/sdb: 124GB
      Sector size (logical/physical): 512B/512B
      Partition Table: msdos
      Disk Flags:
      
      Number  Start   End    Size   Type     File system  Flags
       1      8389kB  545MB  537MB  primary  fat32        lba
       2      545MB   124GB  123GB  primary  ext4
      
      (parted) rm 2         ### rm命令刪除分區,刪除第二分區 ###
      (parted) mkpart primary ext4 1064960s 33313M   ### 新建第二分區,分區開始于第1064960扇區, 結束于32G+545MB(545M是第1分區末尾所在位置)  ###
      (parted) p  ### p命令查看新分區情況 ###
      Model: Kingston DataTraveler 3.0 (scsi)
      Disk /dev/sdb: 124GB
      Sector size (logical/physical): 512B/512B
      Partition Table: msdos
      Disk Flags:
      
      Number  Start   End     Size    Type     File system  Flags
       1      8389kB  545MB   537MB   primary  fat32        lba
       2      545MB   33.3GB  32.8GB  primary  ext4         lba
      
      (parted) quit   ### quit命令退出parted ###
      Information: You may need to update /etc/fstab.
      

      4. 驗證新文件系統

      使用e2fsck -f /dev/sdb2命令檢查新的第二分區上的文件系統,結果沒有報錯。lsblk命令查看,發現分區大小32GB, mount掛載后,發現能正常掛載,使用df -h命令查看文件系統大小是30GB。這里文件系統比分區
      大小小了2GB,那么可以umount卸載分區,使用e2fsck -f /dev/sdb2強制檢查文件系統,執行resize2fs /dev/sdb2(注意,此處resize2fs后面不帶數字),最后就發現文件系統大小就和分區大小一樣大了。



      在線擴大根分區上的文件系統操作步驟

      直接上命令:
      root用戶執行:lsblk # lsblk命令查看分區情況
      回顯如下:

      NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
      sda      8:0    1 15.2G  0 disk                ### U盤總大小接近15.2GB,注意lsblk命令查看的結果和parted命令查看的空間大小是有一定的差別的,估計是1000和1024進位的差別。
      ├─sda1   8:1    1  512M  0 part /boot/firmware
      └─sda2   8:2    1  9.5G  0 part /        ### 可見此時sda2是掛載了/分區,分區大小9.5GB,和前面第一分區加起來才10GB,說明此U盤后面有大概5G左右是自由空間。
      

      root用戶執行:parted /dev/sda ### 下面進入parted操作

      GNU Parted 3.5
      Using /dev/sda
      Welcome to GNU Parted! Type 'help' to view a list of commands.
      (parted) unit MB    ### unit命令設置單位為MB
      (parted) p          ### p命令查看分區情況
      Model: Lenovo USB Flash Drive (scsi)
      Disk /dev/sda: 16359MB          
      Sector size (logical/physical): 512B/512B
      Partition Table: msdos
      Disk Flags:
      
      Number  Start   End      Size     Type     File system  Flags
       1      8.39MB  545MB    537MB    primary  fat32        lba
       2      545MB   10785MB  10240MB  primary  ext4                          ### 根分區大小約10GB
      
      (parted) resizepart 2 16359MB   ### resizepart命令變更分區大小,這里將第二分區的末尾設置成U盤大小,16359MB這個數字出現在本段落前面的p命令的回顯結果中,當然也可以使用100%來代替這個數字。
      Warning: Partition /dev/sda2 is being used. Are you sure you want to continue?
      Yes/No? yes    ### 警告,我們這里輸入yes
      (parted) q    ### q命令退出parted操作界面
      Information: You may need to update /etc/fstab.
      

      至此,第二分區的分區大小已經擴至可用空間的最大值,接下來還需要使用resize2fs命令把文件系統擴至最大可用之空間。

      root用戶執行:resize2fs /dev/sda2 ### resize2fs不帶數字參數,則文件系統擴容成最大可用空間
      回顯如下:

      resize2fs 1.47.0 (5-Feb-2023)
      Filesystem at /dev/sda2 is mounted on /; on-line resizing required
      old_desc_blocks = 1, new_desc_blocks = 1
      The filesystem on /dev/sda2 is now 3860720 (4k) blocks long.
      

      root用戶執行:lsblk # lsblk查看分區大小。
      回顯如下:

      NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
      sda      8:0    1 15.2G  0 disk
      ├─sda1   8:1    1  512M  0 part /boot/firmware
      └─sda2   8:2    1 14.7G  0 part /      ### 現在兩個分區加起來就是15GB多點了。
      

      root用戶執行:df -h |grep '^/' # df查看文件系統大小, 兩個分區加起來也15GB多

      /dev/sda2        15G  2.2G   12G  16% /
      /dev/sda1       510M   66M  445M  13% /boot/firmware
      

      在線擴大根分區上的文件系統大小的操作至此結束



      關于fdisk和parted

      • fdisk命令只支持MBR分區表,小于2TB的磁盤,只要不執行w命令,變更就不會生效。parted命令支持GPT和MBR分區表,支持大于2TB的磁盤,操作是實時生效的,每個操作都要謹慎。
      • parted指定的大小可能會出入很大,比如我在parted命令下使用mkpart primary ext4 60G, 結果生效后,lsblk查看只有大概55GB。為了避免這個情況,我一般使用MB為單位,或者使用帶小數點的值。

      本博文是作者“進取有樂”原創,僅發布于博客園,其他網站轉載請注明出處。

      posted on 2025-06-05 15:06  進取有樂  閱讀(813)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 午夜精品福利亚洲国产| 精品国产免费一区二区三区香蕉| 色偷偷亚洲女人天堂观看| 伊人av超碰伊人久久久| 4399理论片午午伦夜理片| 永年县| 午夜成年男人免费网站| 中文字幕制服国产精品| 苗栗县| 国内少妇人妻偷人精品视频| 成人无码影片精品久久久| 镇原县| 无码人妻精品一区二区三区蜜桃| 少妇太爽了在线观看免费视频| 盐城市| 亚洲粉嫩av一区二区黑人| 西西大胆午夜人体视频| 卢氏县| 欧美综合区自拍亚洲综合绿色| 中文字幕日韩精品国产| 少妇被躁爽到高潮| 亚洲综合一区二区三区不卡| 国产精品一级久久黄色片| brazzers欧美巨大| 综合亚洲网| 九九久久人妻精品一区色| 成人做爰www网站视频| 四虎精品视频永久免费| 精品国产女同疯狂摩擦2| 亚洲日本高清一区二区三区| 日韩av片无码一区二区不卡 | 日韩有码中文字幕国产| 国产无遮挡又黄又爽在线视频| 亚洲av综合色区在线观看| 国产精品视频午夜福利| 男女裸体影院高潮| 日韩无人区码卡1卡2卡| 狠狠色丁香婷婷综合尤物| av中文字幕在线二区| 欧美激情 亚洲 在线| 狠狠亚洲丁香综合久久|