Ubuntu虚拟机使用纯命令行对根分区进行扩展

news2024/11/28 20:36:36

Ubuntu虚拟机使用纯命令行对根分区进行扩展

前排提示

因为Ubuntu再安装时,根分区是没有使用LVM进行磁盘管理的,所以如果想扩展根分区,我们不得不使用另外一种暴力的方法。简单来说就是利用fdisk删除原来的根分区再基于原来的起始块号重新建立一个根分区。从而达到扩展根分区的目的。

步骤

0、我在创建虚拟机的时候,硬盘只分配了50G,我的虚拟机基本配置如下:

在这里插入图片描述

1、首先使用df和lsblk查看我分区情况:

root@lunar-virtual-machine:~/workspace# 
root@lunar-virtual-machine:~/workspace# df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           790M  2.0M  788M   1% /run
/dev/sda3        49G   30G   17G  65% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
/dev/sda2       512M  6.1M  506M   2% /boot/efi
tmpfs           790M   76K  790M   1% /run/user/128
tmpfs           790M   60K  790M   1% /run/user/0
root@lunar-virtual-machine:~/workspace# 
root@lunar-virtual-machine:~/workspace# 
root@lunar-virtual-machine:~/workspace# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  63.9M  1 loop /snap/core20/2264
loop2    7:2    0  74.2M  1 loop /snap/core22/1122
loop3    7:3    0  63.9M  1 loop /snap/core20/2318
loop4    7:4    0  74.2M  1 loop /snap/core22/1380
loop5    7:5    0   497M  1 loop /snap/gnome-42-2204/141
loop6    7:6    0 349.7M  1 loop /snap/gnome-3-38-2004/143
loop7    7:7    0 268.3M  1 loop /snap/firefox/4090
loop8    7:8    0 505.1M  1 loop /snap/gnome-42-2204/176
loop9    7:9    0 269.6M  1 loop /snap/firefox/4136
loop10   7:10   0  91.7M  1 loop /snap/gtk-common-themes/1535
loop11   7:11   0  12.9M  1 loop /snap/snap-store/1113
loop12   7:12   0  12.3M  1 loop /snap/snap-store/959
loop13   7:13   0  38.7M  1 loop /snap/snapd/21465
loop14   7:14   0  40.4M  1 loop /snap/snapd/20671
loop15   7:15   0   476K  1 loop /snap/snapd-desktop-integration/157
loop16   7:16   0   452K  1 loop /snap/snapd-desktop-integration/83
sda      8:0    0    50G  0 disk 
├─sda1   8:1    0     1M  0 part 
├─sda2   8:2    0   513M  0 part /boot/efi
└─sda3   8:3    0  49.5G  0 part /var/snap/firefox/common/host-hunspell
                                 /
sr0     11:0    1   4.7G  0 rom  
root@lunar-virtual-machine:~/workspace# 

2、关闭虚拟机,修改硬盘大小:

在这里插入图片描述

3、启动虚拟机,再次使用df、lsblk查看分区情况,从lsblk命令的输出可以看到/dev/sda设备的容量变成了100G,但是因为我们还没进行分区,剩余的50G无法被投入使用,所以下一步开始准备扩展分区:

root@lunar-virtual-machine:~/workspace# 
root@lunar-virtual-machine:~/workspace# df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           790M  2.0M  788M   1% /run
/dev/sda3        49G   30G   17G  65% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
/dev/sda2       512M  6.1M  506M   2% /boot/efi
tmpfs           790M   76K  790M   1% /run/user/128
tmpfs           790M   60K  790M   1% /run/user/0
root@lunar-virtual-machine:~/workspace# 
root@lunar-virtual-machine:~/workspace# 
root@lunar-virtual-machine:~/workspace# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  63.9M  1 loop /snap/core20/2264
loop2    7:2    0  74.2M  1 loop /snap/core22/1380
loop3    7:3    0  74.2M  1 loop /snap/core22/1122
loop4    7:4    0  63.9M  1 loop /snap/core20/2318
loop5    7:5    0 268.3M  1 loop /snap/firefox/4090
loop6    7:6    0 269.6M  1 loop /snap/firefox/4136
loop7    7:7    0 349.7M  1 loop /snap/gnome-3-38-2004/143
loop8    7:8    0   497M  1 loop /snap/gnome-42-2204/141
loop9    7:9    0 505.1M  1 loop /snap/gnome-42-2204/176
loop10   7:10   0  91.7M  1 loop /snap/gtk-common-themes/1535
loop11   7:11   0  12.9M  1 loop /snap/snap-store/1113
loop12   7:12   0  12.3M  1 loop /snap/snap-store/959
loop13   7:13   0  40.4M  1 loop /snap/snapd/20671
loop14   7:14   0  38.7M  1 loop /snap/snapd/21465
loop15   7:15   0   476K  1 loop /snap/snapd-desktop-integration/157
loop16   7:16   0   452K  1 loop /snap/snapd-desktop-integration/83
sda      8:0    0   100G  0 disk 
├─sda1   8:1    0     1M  0 part 
├─sda2   8:2    0   513M  0 part /boot/efi
└─sda3   8:3    0  49.5G  0 part /var/snap/firefox/common/host-hunspell
                                 /
sr0     11:0    1   4.7G  0 rom  
root@lunar-virtual-machine:~/workspace# 

4、使用fdisk命令进行扩容,具体步骤是:使用p查看一下初始分区情况,一定要记住sda3的起始块号:1054720,然后使用d删除第3分区(此时很关键,一定不要使用w保持退出!),然后再n一个3分区,然后起始块就是1054720,最后一块默认就行了,将所有块都分配给根分区。然后w保持退出。

root@lunar-virtual-machine:~/workspace# fdisk /dev/sda

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

This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.

Command (m for help): m

Help:

  GPT
   M   enter protective/hybrid MBR

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table


Command (m for help): p
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual S
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: gpt
Disk identifier: 14A69C2D-E6FB-4626-A7E6-10A16A052F8D

Device       Start       End   Sectors  Size Type
/dev/sda1     2048      4095      2048    1M BIOS boot
/dev/sda2     4096   1054719   1050624  513M EFI System
/dev/sda3  1054720 104855551 103800832 49.5G Linux filesystem

Command (m for help): d
Partition number (1-3, default 3): 3

Partition 3 has been deleted.

Command (m for help): p
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual S
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: gpt
Disk identifier: 14A69C2D-E6FB-4626-A7E6-10A16A052F8D

Device     Start     End Sectors  Size Type
/dev/sda1   2048    4095    2048    1M BIOS boot
/dev/sda2   4096 1054719 1050624  513M EFI System

Command (m for help): n
Partition number (3-128, default 3): 
First sector (1054720-209715166, default 1054720): 1054720
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1054720-209715166, default 209715166): 

Created a new partition 3 of type 'Linux filesystem' and of size 99.5 GiB.
Partition #3 contains a ext4 signature.

Do you want to remove the signature? [Y]es/[N]o: y

The signature will be removed by a write command.

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

root@lunar-virtual-machine:~/workspace# 

5、此时再用命令查看一下分区情况,我可以看到lsblk命令将剩余的50G算作根分区的容量,但是df命令显示的根分区还是50个G。这点很好解决,继续下面步骤。

root@lunar-virtual-machine:~/workspace# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  63.9M  1 loop /snap/core20/2264
loop2    7:2    0  74.2M  1 loop /snap/core22/1380
loop3    7:3    0  74.2M  1 loop /snap/core22/1122
loop4    7:4    0  63.9M  1 loop /snap/core20/2318
loop5    7:5    0 268.3M  1 loop /snap/firefox/4090
loop6    7:6    0 269.6M  1 loop /snap/firefox/4136
loop7    7:7    0 349.7M  1 loop /snap/gnome-3-38-2004/143
loop8    7:8    0   497M  1 loop /snap/gnome-42-2204/141
loop9    7:9    0 505.1M  1 loop /snap/gnome-42-2204/176
loop10   7:10   0  91.7M  1 loop /snap/gtk-common-themes/1535
loop11   7:11   0  12.9M  1 loop /snap/snap-store/1113
loop12   7:12   0  12.3M  1 loop /snap/snap-store/959
loop13   7:13   0  40.4M  1 loop /snap/snapd/20671
loop14   7:14   0  38.7M  1 loop /snap/snapd/21465
loop15   7:15   0   476K  1 loop /snap/snapd-desktop-integration/157
loop16   7:16   0   452K  1 loop /snap/snapd-desktop-integration/83
sda      8:0    0   100G  0 disk 
├─sda1   8:1    0     1M  0 part 
├─sda2   8:2    0   513M  0 part /boot/efi
└─sda3   8:3    0  99.5G  0 part /var/snap/firefox/common/host-hunspell
                                 /
sr0     11:0    1   4.7G  0 rom  
root@lunar-virtual-machine:~/workspace# df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           790M  2.0M  788M   1% /run
/dev/sda3        49G   30G   17G  65% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
/dev/sda2       512M  6.1M  506M   2% /boot/efi
tmpfs           790M   76K  790M   1% /run/user/128
tmpfs           790M   60K  790M   1% /run/user/0

6、利用df -Th命令查看根分区的文件系统类型,可以看到挂载在/目录下的文件系统是ext4类型文件系统,所以,我们可以使用resize2fs /dev/sda命令可以更新分区情况。至此,根分区扩展完毕。

root@lunar-virtual-machine:~/workspace# df -Th
Filesystem     Type   Size  Used Avail Use% Mounted on
tmpfs          tmpfs  790M  2.0M  788M   1% /run
/dev/sda4      ext4    49G   30G   17G  65% /
tmpfs          tmpfs  3.9G     0  3.9G   0% /dev/shm
tmpfs          tmpfs  5.0M  4.0K  5.0M   1% /run/lock
/dev/sda2      vfat   512M  6.1M  506M   2% /boot/efi
tmpfs          tmpfs  790M   76K  790M   1% /run/user/128
tmpfs          tmpfs  790M   60K  790M   1% /run/user/0


root@lunar-virtual-machine:~/workspace# resize2fs /dev/sda
resize2fs 1.46.5 (30-Dec-2021)
resize2fs: Device or resource busy while trying to open /dev/sda
Couldn't find valid filesystem superblock.
root@lunar-virtual-machine:~/workspace# resize2fs /dev/sda3
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/sda3 is mounted on /; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 13
The filesystem on /dev/sda3 is now 26082555 (4k) blocks long.

root@lunar-virtual-machine:~/workspace# 
root@lunar-virtual-machine:~/workspace# 
root@lunar-virtual-machine:~/workspace# df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           790M  2.0M  788M   1% /run
/dev/sda3        98G   30G   64G  32% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
/dev/sda2       512M  6.1M  506M   2% /boot/efi
tmpfs           790M   76K  790M   1% /run/user/128
tmpfs           790M   60K  790M   1% /run/user/0
root@lunar-virtual-machine:~/workspace# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  63.9M  1 loop /snap/core20/2264
loop2    7:2    0  74.2M  1 loop /snap/core22/1380
loop3    7:3    0  74.2M  1 loop /snap/core22/1122
loop4    7:4    0  63.9M  1 loop /snap/core20/2318
loop5    7:5    0 268.3M  1 loop /snap/firefox/4090
loop6    7:6    0 269.6M  1 loop /snap/firefox/4136
loop7    7:7    0 349.7M  1 loop /snap/gnome-3-38-2004/143
loop8    7:8    0   497M  1 loop /snap/gnome-42-2204/141
loop9    7:9    0 505.1M  1 loop /snap/gnome-42-2204/176
loop10   7:10   0  91.7M  1 loop /snap/gtk-common-themes/1535
loop11   7:11   0  12.9M  1 loop /snap/snap-store/1113
loop12   7:12   0  12.3M  1 loop /snap/snap-store/959
loop13   7:13   0  40.4M  1 loop /snap/snapd/20671
loop14   7:14   0  38.7M  1 loop /snap/snapd/21465
loop15   7:15   0   476K  1 loop /snap/snapd-desktop-integration/157
loop16   7:16   0   452K  1 loop /snap/snapd-desktop-integration/83
sda      8:0    0   100G  0 disk 
├─sda1   8:1    0     1M  0 part 
├─sda2   8:2    0   513M  0 part /boot/efi
└─sda3   8:3    0  99.5G  0 part /var/snap/firefox/common/host-hunspell
                                 /
sr0     11:0    1   4.7G  0 rom  

这里额外记录一下,第6步最后的刷新文件系统状态的命令,不同的文件系统需要使用不同的命令:

  • resize2fs /dev/sda 针对文件系统ext2 ext3 ext4 (一般是Ubuntu上使用

  • xfs_growfs /dev/sda 针对文件系统xfs (一般是centos上使用,而centos是使用lvm来扩展根分区的。

磁盘分区小干货:

硬盘分区有三种,主磁盘分区、扩展磁盘分区、逻辑分区。

三种分区必须满足以下限制:

  1. 一个硬盘主分区至少有1个,最多4个。

  2. 扩展分区可以没有,最多1个。(扩展分区其实也算一种特殊的主分区

  3. 主分区+扩展分区总共不能超过4个。

  4. 逻辑分区可以有若干个。

关于分区号:

  • 1~4号:只能被主分区和扩展分区使用。

  • 5~n号:被逻辑分区使用。

主分区可以包含一个操作系统(例如Linux、Windows)。

扩展分区本身不能包含文件系统,只能包含逻辑分区。


本章完结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1804668.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PHP超详细安装及应用

目录 所需安装包如下 一、PHP安装 依赖包安装 安装扩展工具(先将PHP所需的软件包全部拖进centos根目录下) 安装libmcrypt 安装mhash 安装mcrypt 安装PHP 二、设置LAMP组件环境(要保证mysql、http都安装完成了) Php.ini的建…

MySQL常用的库操作、表操作、INSERT、DELETE

库操作 查询数据库: show databases; 创建数据库: create database chat; 删除数据库: drop database chat; 选择数据库: use chat; 表操作 查询表: show tables&am…

数据库同步软件PanguSync常见错误解决方法

​​​​​​在部署PanguSync数据库同步软件的过程中,常常会遇见一些错误提示,某些老铁可能会一脸懵逼,本文对一些常见的错误信息进行了总结,并提供了解决方法。 1.")"附近有语法错误 该问题是由于源表未设置主键&…

中国现代书法第一人颜廷利:全球知名哲学家思想家教育家

在人生的旅途中,如果一个人的所有追求仅仅是为了满足自己的需求和欲望,而非出于善意、行善或造福他人,那么无论其遭受了多少苦难,这样的生活是难以赢得他人的同情或怜悯的。这是东方哲学家、科学家颜廷利教授在其著作《升命学说》…

如何借助ChatGPT写文献综述?从文献搜索到综述生成,顶级高效指令值得收藏

欢迎关注EssayBot,为大家带来最酷最有效的智能AI学术科研写作攻略。关于使用ChatGPT等AI工具的相关问题可以添加作者七哥沟通 在学术研究的过程中,文献综述是学术论文的核心组成部分,其主要目的在于对特定问题的先行研究成果进行总结和梳理&a…

往前冲,

最近换了个手机,原因是之前的手机存储空间一直不够,隔一段时间就提醒我删除东西,刚好那天去三诺出差,那边有一个工程师给我推荐了红米手机Turbo3,存储直接干到了1T。 第二天,就下定决心要换手机&#xff0c…

哈希表与哈希扩容

一,哈希表 哈希表简单的理解:在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。 哈希表基于数组的,正因为数组创建后难于扩展某些哈希表被基本填满时,性能下…

【SQLAlChemy】怎么进行简单的增删改查,CRUD操作是什么?

CRUD 所有的 CRUD 操作,必须在 session 的前提下进行。 构建 session 对象(实例) 所有和数据库的 ORM 操作都必须通过一个叫做 session 的会话对象来实现。 from sqlalchemy.orm import sessionmaker# 构建 session 对象 # engine 为之前创建的数据库连接引擎 s…

透视亚马逊云科技中国峰会:生成式AI全面提速,加速行业应用落地

导读:亚马逊云科技在中国,生成式AI与行业化战略齐头并进。 “亚马逊云科技致力于成为企业构建和应用生成式AI的首选。” 近日2024亚马逊云科技中国峰会上,亚马逊全球副总裁、亚马逊云科技大中华区总裁储瑞松分享了亚马逊云科技中国业务最新进…

Maven核心功能依赖和构建管理

1.依赖管理和配置 Maven 依赖管理是 Maven 软件中最重要的功能之一。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖问题,使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程序或模块中,避免出现版本冲突和依赖缺失等…

【Python机器学习】NMF——模拟数据

与使用PCA不同,我们需要保证数据是正的,NMF能够对数据进行操作。这说明数据相对于原点(0,0)的位置实际上对NMF很重要。因此,可以将提取出来的非负向量看作是从(0,0)到数据的方向。 举例:NMF在二维玩具数据上的结果: …

SSH反向代理

介绍 SSH反向代理是一种通过SSH协议实现的安全远程访问方式。在这种方式中,客户端通过SSH连接到一台具有公网IP的主机,然后这台主机再将请求转发给内部网络中的目标主机。这样做的好处是可以隐藏内部网络的细节,提高安全性,同时也…

Docker搭建可道云

Docker搭建可道云(存储) 文章目录 Docker搭建可道云(存储)介绍资源列表基础环境一、安装Docker二、配置Docker加速器三、搭建可道云私有云盘3.1、编写Dockerfile3.2、上传资源到指定目录3.3、查看目录下所有资源 四、构建镜像五、…

易于上手的requests

Python中的requests库主要用于发送HTTP请求并获取响应结果。在现代网络编程中,HTTP请求是构建客户端与服务器之间通信的基础。Python作为一种高级编程语言,其丰富的库支持使得它在网络数据处理领域尤为突出。其中,requests库以其简洁、易用的…

C# 绘图及古诗填字

绘图 绘图的结果如下: 绘图部分主要使用了 Bitmap、Graphics 具体的函数是 MakeMap 入参说明 string bg : 背景图 Rectangle rect :绘图区域 int row_count :行数 int col_count :列数 string fn :保存到的文件 …

HTML+CSS+JS 密码灯登录表单

效果演示 实现了一个登录页面,包括一个标题、两个输入框(用户名和密码)、一个登录按钮和一个眼睛图标。点击眼睛图标可以显示或隐藏密码。页面背景有两个圆形的半透明元素,整个页面使用了flex布局,并且在水平和垂直方向上都居中对齐。登录框使用了阴影效果和圆角边框,并且…

Django 表里做删除

先看效果图 点击 删除 按钮之后&#xff0c;就可以下面的效果 操作步骤&#xff1a; 1. 在 urls.py 文件里&#xff0c;添加路劲&#xff1a; urlpatterns [path(asset/<int:aid>/delete/, am_views.asset_delete),]2. 在 views.py 文件里&#xff0c;实现一个新的函…

【CS.AL】八大排序算法 —— 快速排序全揭秘:从基础到优化

文章目录 1. 快速排序简介1.1 定义1.2 时间复杂度1.3 相关资源 2. 最优的Partition算法 &#x1f525;2.1 Introsort简介2.2 过程示例 3. 非递归快速排序3.1 实现 4. 递归快速排序4.1 实现 5. 有问题的Partition5.1 实现 6. 三中位数主元选择6.1 实现 7. 总结 1. 快速排序简介 …

微信小程序基础工作模板

1.轮播图 点击跳转官方文档 简单例子 <!-- 顶部轮播图 --> <swiper indicator-dots"true" class"banner" autoplay"true" interval"2000"><swiper-item><image src"../../images/轮播图1.jpg" >…

Chrome跳转新的标签页自动打开控制台设置方法

Chrome跳转新的标签页自动打开控制台设置方法 文章目录 Chrome跳转新的标签页自动打开控制台设置方法1. 首先打开控制台2. 点击设置3. 选择Preferences -> Global -> 选中 Auto-open DevTools for popups4. 回到控制台勾选 preserve log保留日志![请添加图片描述](https:…