Linux : No space left on device 远程linux服务器无法pip install package等问题溯源与解决方案

一、问题溯源

这两天跑程序,需要在linux centos 的conda环境中安装包,死活也安装不上,总是提示,No space left on device,
在这里插入图片描述
于是输入如下命令查看磁盘占用情况

df-h

在这里插入图片描述
惊讶地发现,磁盘的逻辑分区空间已满,于是找同学给账户分配了160G硬盘,但是问题依旧没有解决,输入df-h之后结果仍然如上图所示。于是输入

fdisk -l

命令查询磁盘容量情况如下图:
在这里插入图片描述
担心上面的图失效,所以在下面把文字也挂上

$ sudo fdisk -l
Disk /dev/sda: 160 GiB, 171798691840 bytes, 335544320 sectors
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: 0x8e8509b6

Device     Boot   Start      End  Sectors Size Id Type
/dev/sda1  *       2048  2099199  2097152   1G 83 Linux
/dev/sda2       2099200 33554431 31455232  15G 8e Linux LVM

Disk /dev/mapper/cs-root: 13.4 GiB, 14382268416 bytes, 28090368 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/cs-swap: 1.6 GiB, 1719664640 bytes, 3358720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

终于破案了,分配的160G空间没有进行分区,并扩充到逻辑盘中,于是乎我开始进入到了扩展逻辑的过程中,过程中遇到了好几个不懂的地方,整个过程耗费2小时,于是决定记录下来,帮助以后遇到相同问题的人可以快速解决这个问题。
(注意:磁盘空间不足的问题,有时候可能是磁盘缓存文件过多等问题导致的,在没有直接的硬件扩容支持的情况下可以考虑清除日志文件等方法,这里不再赘述)

二、解决方案:Linux 逻辑磁盘扩容

2.0初次尝试直接给分区扩容

首先,直接给分区扩容的命令如下:

lvextend -L +80G /dev/vg/lv

其中,vg代表卷组; volume group
需要具体到你的电脑用,用vgdisplay命令可以查看

lv代表逻辑卷:logical volume
需要具体到你的电脑用,用lvdisplay命令可以查看

pv代表物理卷:physical volume
需要具体到你的电脑用,用pvdisplay命令可以查看

/dev 代表分区路径,一般都是/dev

但是出现了问题,报错内容如下:

$ sudo lvextend -L +80G /dev/mapper/cs-root
>> Insufficient free space: 20480 extents needed, but only 0 available

所剩空间不足。
分析原因如下:划定vg时已经固定了容量,lv容量从vg扩充,第一次已经将vg的空间全部划给lv,所以无法扩充。需扩充vg,但扩充vg需先扩pv,扩pv需新建分区。

现在我们有了160没分区的盘,就用着剩下的160G来分区做物理盘(pv),并用它来进行逻辑分区(lv)扩容。

2.1第一步、格式化(或者说是创建)物理分区

使用fdisk /dev/sda命令来对磁盘进行分区,参数command选择n。
在这里插入图片描述

$ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 3
First sector (33554432-335544319, default 33554432): 
Last sector, +sectors or +size{K,M,G,T,P} (33554432-335544319, default 335544319): wq
Last sector, +sectors or +size{K,M,G,T,P} (33554432-335544319, default 335544319): wq
Last sector, +sectors or +size{K,M,G,T,P} (33554432-335544319, default 335544319): 

Created a new partition 3 of type 'Linux' and of size 144 GiB.

Command (m for help): wq
The partition table has been altered.
Syncing disks.

输入fdisk -l查看分区结果如下:多了一个sda3
在这里插入图片描述

2.2第二步:将分出来的sda3分区创建为物理卷

pvcreate  /dev/sda3  

(可以先执行pvdisplay ,查看一下sda1的路径在哪,然后在进行操作,一般都是在/dev下)
在这里插入图片描述

2.3第三步:为卷组vg添加新的物理卷sda3来增大容量

vgextend  vg  /dev/sda3

(vgdisplay 查看vg的名称和路径)
在这里插入图片描述
因为我的VG的名字是cs,所以命令要修改为

vgextend  cs  /dev/sda3

在这里插入图片描述

2.4第四步、扩展逻辑卷的大小

lvextend -L +80G /dev/vg/lv

lvdisplay 查看lv 逻辑卷的路径和名称
在这里插入图片描述
根据我自己的vg和lv的名称,修改命令代码如下

lvextend -L +80G /dev/cs/root

在这里插入图片描述

2.5第五步、重载逻辑卷,使分配结果生效

resize2fs  /dev/vg/lv

运行后发现出错,同时df -h查看磁盘逻辑卷利用率并没有变化
在这里插入图片描述
检查 /dev/cs/root 文件系统,发现是xfs,使用命令如下;

 mount |grep root
 >>/dev/mapper/cs-root on / type xfs 

xfs的文件系统重新定义大小用如下命令

xfs_growfs /dev/mapper/cs-root 

再重新查看磁盘利用率,发现,磁盘分配成功啦!!!!

在这里插入图片描述

参考资料

参考资料比较杂,每一篇都用到了一部分
https://blog.csdn.net/zhou562334410/article/details/97368505
https://www.cnblogs.com/happy-king/p/9070496.html
https://www.cnblogs.com/wangmo/p/8727162.html

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提到的错误提示"ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device"表示在安装pytorch时出现了磁盘空间不足的问题。这可能是由于磁盘空间不足导致无法安装所需的包。 要解决这个问题,你可以尝试以下几个方法: 1. 检查磁盘空间:首先,你需要确认你的磁盘确实没有足够的空间。你可以使用命令"df -h"来查看磁盘的使用情况。 2. 清理磁盘空间:如果你发现磁盘空间确实不足,你可以尝试清理磁盘上的一些不必要的文件或者移动它们到其他磁盘上释放空间。你可以删除一些临时文件、旧日志文件或者不再需要的大文件。 3. 扩展磁盘空间:如果清理磁盘空间后仍然无法解决问题,你可以考虑扩展磁盘空间。这可以通过添加新的磁盘、调整分区大小或者使用云存储等方法实现。 通过以上方法,你应该能够解决"ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device"的问题。记得在进行任何磁盘操作之前,备份重要的文件以防止数据丢失。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [CUDA11.2 安装pytorch报错:ERROR: Could not install packages due to an OSError: [Errno 2] No such ...](https://blog.csdn.net/m0_56909995/article/details/124050316)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [anaconda安装pytorch时报错PackagesNotFoundError: The following packages are not available from ...](https://download.csdn.net/download/weixin_38621870/13750818)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值