centos7扩容/usr分区

本文详细介绍了如何在Centos7系统中解决磁盘容量不足的问题,通过在VMware中增加磁盘空间并进行格式化,使用fdisk命令创建新分区,调整分区类型为Linux LVM,并通过partprobe命令通知系统更新分区表。随后,通过pvcreate、vgextend和lvextend命令将新增空间分配给特定逻辑卷,最后使用xfs_growfs同步文件系统。

Centos7系统磁盘容量不足(10g),在vmware中增加到15g,仍需在centos中格式化磁盘。

可以看到整个sda为15g,而sda1和sda2加起来为10g。

fdisk /dev/sda增加主分区。

[root@bogon ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): m
Command action
   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)

Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
Partition number (3,4, default 3): 3
First sector (19984384-31457279, default 19984384): 
Using default value 19984384
Last sector, +sectors or +size{K,M,G} (19984384-31457279, default 31457279): 30000000
Partition 3 of type Linux and of size 4.8 GiB is set

Command (m for help): m
Command action
   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)

Command (m for help): t
Partition number (1-3, default 3): 3
Hex code (type L to list all codes): L

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1 80  Old Minix      
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

按照最后的提示,需要重启系统或使用partprobe命令,partprobe来通知系统分区表发生变化。

报错。

/dev/sr0为虚拟光驱,partprobe会默认检查所有设备。

只需要检查指定设备即可。

partprobe /dev/sda

 之后lsblk可以看到sda3。

vgdisplay查看所有的volume group。

lvdisplay查看所有的logical volume。

[root@bogon ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                0TlORf-1qEr-EvLh-xHDO-tbKc-8upc-5HhSXn
  LV Write Access        read/write
  LV Creation host, time localhost, 2020-03-24 16:11:42 +0800
  LV Status              available
  # open                 2
  LV Size                1.86 GiB
  Current LE             477
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/centos/var
  LV Name                var
  VG Name                centos
  LV UUID                TvfTBz-5Zmc-Brdw-FXzl-eeK1-0MQ0-yfbIEC
  LV Write Access        read/write
  LV Creation host, time localhost, 2020-03-24 16:11:43 +0800
  LV Status              available
  # open                 1
  LV Size                <1.86 GiB
  Current LE             476
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3
   
  --- Logical volume ---
  LV Path                /dev/centos/tmp
  LV Name                tmp
  VG Name                centos
  LV UUID                ZxcFtc-U7LQ-hhl3-1FVb-c9wK-FPDb-3gJlnB
  LV Write Access        read/write
  LV Creation host, time localhost, 2020-03-24 16:11:43 +0800
  LV Status              available
  # open                 1
  LV Size                956.00 MiB
  Current LE             239
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:4
   
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                158pHK-30Ac-6C1K-mgJD-aZsD-Mut5-ZhmGuX
  LV Write Access        read/write
  LV Creation host, time localhost, 2020-03-24 16:11:44 +0800
  LV Status              available
  # open                 1
  LV Size                1.86 GiB
  Current LE             477
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   
  --- Logical volume ---
  LV Path                /dev/centos/home
  LV Name                home
  VG Name                centos
  LV UUID                ovdyZg-KTSR-tvzg-ot3u-GxYa-AZo7-97CpIh
  LV Write Access        read/write
  LV Creation host, time localhost, 2020-03-24 16:11:44 +0800
  LV Status              available
  # open                 1
  LV Size                956.00 MiB
  Current LE             239
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:5
   
  --- Logical volume ---
  LV Path                /dev/centos/usr
  LV Name                usr
  VG Name                centos
  LV UUID                b6oECZ-FE2o-ugDw-YVEJ-yBge-BoAi-n8vfK5
  LV Write Access        read/write
  LV Creation host, time localhost, 2020-03-24 16:11:44 +0800
  LV Status              available
  # open                 1
  LV Size                1.86 GiB
  Current LE             477
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

需要将sda3的空间分配给/dev/centos/usr这个LV。

pvcreate /dev/sda3创建physical volume(物理卷)。

vgextend centos /dev/sda3扩容卷组centos。

lvextend -L +3G /dev/centos/usr将3g的物理卷分配给/dev/centos/usr这个虚拟卷。此时/dev/centos/usr虚拟卷的大小会改变,但是df -h中/usr的大小没有改变。

 xfs_growfs /dev/centos/usr同步文件系统。

同步后df -hlsblk可以看到空间增加

至此/usr扩容完毕。

 

 

 

 

<think>嗯,用户说他们的Linux系统里/usr目录使用率过高,需要扩容。首先,我需要理清楚解决这个问题的步骤。通常,处理磁盘空间不足的问题有几个方法,比如清理不必要的文件、调整分区大小或者添加新的存储设备。不过用户提到的是/usr目录,这个目录通常包含系统软件和应用程序,所以直接删除文件可能不太安全,需要谨慎操作。 首先,我应该建议用户先确认当前磁盘的使用情况。使用df -h命令查看各个挂载点的空间情况,确定是不是真的是/usr所在的分区满了。有时候可能是其他分区的问题,或者有符号链接指向了其他位置。然后,使用du -sh /usr/* | sort -hr来查看/usr下各个子目录的大小,找出占用空间最多的部分。比如,是不是有大量的旧内核文件,或者缓存文件积累过多。 接下来,清理不需要的文件可能是个快速缓解的方法。例如,删除旧的内核版本,很多Linux发行版在升级内核后不会自动删除旧版本,这些文件通常存放在/boot目录下,但如果/boot是挂载在/usr下的话,可能会占用/usr空间。另外,检查/usr/local和/usr/src是否有不需要的软件或源码。日志文件也是一个常见的占用大户,检查/var/log,如果/var是/usr的子目录的话,可能需要清理日志或者配置日志轮替。 如果清理后空间还是不够,就需要考虑扩容了。这里有几个方法:调整分区大小、添加新硬盘或者使用符号链接转移部分数据。调整分区需要看当前分区是否有未分配的空间,或者是否使用LVM,这样可以在线调整。如果是传统的分区,可能需要先卸载分区,但/usr通常很难卸载,因为系统在运行中会使用到,这时候可能需要用Live CD启动系统来调整分区。 如果使用LVM的话,扩容就比较方便,可以添加物理卷到卷组,然后展逻辑卷。之后用resize2fs或xfs_growfs来调整文件系统大小。不过用户需要确认他们的文件系统类型,比如ext4或者XFS,对应的调整命令不同。 如果物理磁盘没有剩余空间,可能需要添加新硬盘。将新硬盘分区格式化后,挂载到某个目录,比如/usr/new,然后迁移/usr下的部分数据到新位置,并用符号链接指向新位置。不过这种方法可能会影响系统稳定性,需要谨慎操作,特别是对于系统关键目录。 另外,用户可能需要考虑是否是某些应用程序或服务导致/usr空间被快速占用,比如容器镜像、缓存文件等。检查是否有异常的大文件或目录,或者定时任务导致日志暴增。 总结下来,处理步骤应该是:确认问题、清理文件、考虑扩容方法。在操作前备份数据,避免误操作导致系统无法启动。如果是生产环境,建议在维护窗口进行操作,或者使用冗余方案确保服务可用性。</think>好的,我将分步骤为您说明Linux本地文件系统/usr目录扩容的完整解决方案: --- ### 一、确认问题根源 1. **查看磁盘使用率** ```bash df -h /usr # 确认/usr所在分区及使用率 df -Th /usr # 查看文件系统类型(ext4/xfs等) ``` ![分区示例](https://example.com/df-output.png) 2. **分析具体占用** ```bash sudo du -sh /usr/* | sort -hr # 按大小排序子目录 sudo ncdu /usr # 交互式可视化分析工具 ``` --- ### 二、临时清理方案 #### 1. 清理可删除内容 ```bash # 清理旧内核(重要!至少保留一个可用内核) sudo apt autoremove --purge # Debian/Ubuntu sudo dnf remove --oldinstallers # RHEL/CentOS # 清理软件包缓存 sudo apt clean # Debian/Ubuntu sudo dnf clean all # RHEL/CentOS # 清理编程语言缓存 rm -rf ~/.cache/ # 用户级缓存 sudo rm -rf /usr/lib/python*/__pycache__ ``` #### 2. 日志管理 ```bash sudo journalctl --vacuum-size=200M # 限制systemd日志大小 sudo logrotate -f /etc/logrotate.conf # 强制执行日志轮替 ``` --- ### 三、永久扩容方案 #### 方案1:LVM动态扩容(推荐) ```bash sudo pvcreate /dev/sdb1 # 创建物理卷(假设新磁盘为sdb1) sudo vgextend vg_name /dev/sdb1 # 展卷组 sudo lvextend -L +50G /dev/vg_name/usr_lv # 展逻辑卷 sudo resize2fs /dev/vg_name/usr_lv # ext4文件系统扩容 # 或对xfs: sudo xfs_growfs /dev/vg_name/usr_lv ``` #### 方案2:物理分区扩容 1. 使用`gparted`图形工具调整分区 2. 或通过`fdisk`删除重建分区(需要卸载分区,建议使用Live CD) #### 方案3:绑定挂载 ```bash # 将新磁盘挂载到子目录 sudo mkfs.ext4 /dev/sdb1 sudo mkdir /mnt/new_usr sudo mount /dev/sdb1 /mnt/new_usr sudo rsync -av /usr/* /mnt/new_usr/ sudo umount /mnt/new_usr sudo mount /dev/sdb1 /usr # 永久生效需修改/etc/fstab: /dev/sdb1 /usr ext4 defaults 0 0 ``` --- ### 四、预防措施 1. **设置监控报警** ```bash # 添加cron定时检查 */30 * * * * df -h /usr | mail -s "磁盘报警" admin@example.com ``` 2. **优化软件管理** ```bash # 配置自动清理 sudo apt install apt-config-auto-removal # Debian自动清理 sudo dnf install dnf-automatic # RHEL自动更新 ``` --- ### 操作风险提示 1. **必须备份**:操作前执行`sudo tar czf /backup/usr_backup.tar.gz /usr` 2. **避免服务中断**:建议在维护窗口操作,使用`screen/tmux`保持会话 3. **文件系统验证**:扩容后执行`sudo fsck -f /dev/partition` --- 通过上述步骤,可系统化解决/usr目录空间不足问题。建议优先采用LVM方案,其灵活性最高。实际操作时请根据具体环境调整命令参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值