腊八蒜山楂酱 發表於 2023-11-5 00:00:00

详解linux根目录空间不足解决方案

<p>
        <strong>1. 前言</strong></p>
<p>
        之前新建了个ubuntu虚拟机来构建golang开发环境以及用来运行docker,跟虚拟机分配了20g的空间并挂载到了根目录,但是后来由于用到的镜像越来越多,20g的空间已经远远不能用,所以不得不为系统扩展空间。</p>
<p>
        <strong>2. 本文分析内容安排</strong></p>
<ul>
<li>
                虚拟机空间扩展</li>
        <li>
                新建分区</li>
        <li>
                挂载分区到临时目录</li>
        <li>
                拷贝文件</li>
        <li>
                挂载到/var目录并写入fstab</li>
</ul>
<p>
        <strong>3. 虚拟机空间扩展</strong></p>
<p>
        打开vmvare,选择要添加磁盘空间的虚拟机,右击,然后在出现的菜单中点setting,出来如下图所示的页面</p>
<p>
        <img title="详解linux根目录空间不足解决方案" alt="详解linux根目录空间不足解决方案" src="https://zhuji.jb51.net/uploads/img/202305/b2da0c456d49ceb9c40398576232abb3.jpg"></p>
<p>
        选择harddisk,点击右侧utilities下拉菜单中的expand选项,设定扩展后磁盘的总大小,点expand</p>
<p>
        <img title="详解linux根目录空间不足解决方案" alt="详解linux根目录空间不足解决方案" src="https://zhuji.jb51.net/uploads/img/202305/4eef822012bb72ac43645398e6cc233c.jpg"></p>
<p>
        <strong>4. 新建分区</strong></p>
<p>
        1、进入系统,先执行fdisk -l命令,查看下系统中现有的分区</p>
<p>
        <img title="详解linux根目录空间不足解决方案" alt="详解linux根目录空间不足解决方案" src="https://zhuji.jb51.net/uploads/img/202305/9d0ae5ec8abc6ebcf6a6f1165cc50818.jpg"></p>
<p>
        2、执行fdisk /dev/sda进入分区管理,要新加分区需要将现有的swap分区删除,因为如果不删除那么将无法用新加的空间,后期可以再加上该分区</p>
<p>
        <img title="详解linux根目录空间不足解决方案" alt="详解linux根目录空间不足解决方案" src="https://zhuji.jb51.net/uploads/img/202305/f2b85815d6d8a145ca3f59a411ee997d.jpg"></p>
<p>
        3、删除后已经没了swap,如上图所示,这里便可以新建分区了,记住要留下分给swap的空间</p>
<p>
        <img title="详解linux根目录空间不足解决方案" alt="详解linux根目录空间不足解决方案" src="https://zhuji.jb51.net/uploads/img/202305/98df41bf3b5914f7de9bf2659e45028b.jpg"></p>
<p>
        4、可以输入w然后退出了</p>
<p>
        <strong>5. 挂载分区到临时目录</strong></p>
<p>
        为了临时中转/var目录中的文件,先将新建立的分区/dev/sda3挂载到/temp目录下,命令如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_619131">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">mkfs -ext4 </code><code class="bash plain">/dev/sda2</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">mkdir</code> <code class="bash plain">/temp</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">mount</code> <code class="bash plain">-t ext4 </code><code class="bash plain">/dev/sda2</code> <code class="bash plain">/temp</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        <strong>6. 拷贝文件</strong></p>
<p>
        将/var中的文件全部拷贝到/temp中,因为如果不将文件导出来到新建的分区中,那么新挂载目录后会隐藏掉原/var下的目录</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_566897">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">cp</code> <code class="bash plain">/var/</code><code class="bash plain">* </code><code class="bash plain">/temp</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">umount</code> <code class="bash plain">/temp</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">mount</code> <code class="bash plain">-t </code><code class="bash plain">/dev/sda2</code> <code class="bash plain">/var</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        到此,已经为虚拟机新增加了磁盘空间,并挂载到了/var目录。</p>
<p>
        <strong>7. 挂载到/var目录并写入fstab</strong></p>
<p>
        为了在开机时就挂载好新加入的空间,可以将挂载规则写入fstab,相关格式参照fstab中已有条目就好</p>
<p>
        <strong>8. 总结</strong></p>
<p>
        扩展虚拟机空间并将新扩展的空间挂载到文件系统的方式有很多种,这里讲的只是其中一个,读者可以自己探索其他的,包括使用逻辑卷等可以直接扩展根目录的方式。linux系统很灵活,实现一个目的的方式有很多种。希望对大家的学习有所帮助,也希望大家多多支持。</p>
<p>
        原文链接:http://blog.csdn.net/yuanfang_way/article/details/50810146</p>
頁: [1]
查看完整版本: 详解linux根目录空间不足解决方案