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

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)。

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


本章完结

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用C++结合OpenCV进行图像处理与分类

⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三…

LabVIEW与PLC的区别

LabVIEW和PLC是工业自动化领域中常见的两种控制和测控方案,各自有独特的优点和适用场景。本文将从多角度比较两者,帮助用户在选择控制系统时做出更明智的决策。 技术背景 LabVIEW LabVIEW是由National Instruments公司开发的图形化编程环境&#xff0…

C# 界面控件中英切换

编程软件:VS 2015 需求:界面有两个按钮,点击可以将界面上所有控件进行不同语言的切换。 一共两种方案,个人认为第二种方案使用范围更广(这里以中英文切换为例)。 方案一:如图所示,建立两个资源文件 将所需控件的中英…

大厂真实面试题(一)

滴滴大数据sql 取出累计值与1000差值最小的记录 1.题目 已知有表t_cost_detail包含id和money两列,id为自增,请累加计算money值,并求出累加值与1000差值最小的记录。 2.分析 本题主要是想找到累加值域1000差距最小的记录,也就是我们要对上述按照id进行排序并且累加,并…

Python 机器学习 基础 之 【实战案例】中药数据分析项目实战

Python 机器学习 基础 之 【实战案例】中药数据分析项目实战 目录 Python 机器学习 基础 之 【实战案例】中药数据分析项目实战 一、简单介绍 二、中药数据分析项目实战 三、数据处理与分析实战 1、数据读取 2、中药材数据集的数据处理与分析 2.1数据清洗 2.2、 提取别…

如何微调 Llama 3 进行序列分类?

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…

如何在隔离环境中设置 LocalAI 以实现 GPU 驱动的文本嵌入

作者:来自 Elastic Valeriy Khakhutskyy 你是否想在 Elasticsearch 向量数据库之上构建 RAG 应用程序?你是否需要对大量数据使用语义搜索?你是否需要在隔离环境中本地运行?本文将向你展示如何操作。 Elasticsearch 提供了多种方法…

Python:处理矩阵之NumPy库(上)

目录 1.前言 2.Python中打开文件操作 3.初步认识NumPy库 4.使用NumPy库 5.NumPy库中的维度 6.array函数 7.arange函数 8.linspace函数 9.logspace函数 10.zeros函数 11.eye函数 前言 NumPy库是一个开源的Python科学计算库,它提供了高性能的多维数组对象、派生对…

CSS函数: translate、translate3d的使用

translate()和translate3d()函数可以实现元素在指定轴的平移的功能。函数使用在CSS转换属性transform的属性值。实现转换的函数类型有: translate():2D平面实现X轴、Y轴的平移translate3d():3D空间实现位置的平移translateX():实…

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

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

GQA,MLA之外的另一种KV Cache压缩方式:动态内存压缩(DMC)

0x0. 前言 在openreview上看到最近NV的一个KV Cache压缩工作:https://openreview.net/pdf?idtDRYrAkOB7 ,感觉思路还是有一些意思的,所以这里就分享一下。 简单来说就是paper提出通过一种特殊的方式continue train一下原始的大模型&#x…

一场决定未来的战役,又是梦想起航的地方

大家好,我是小悟 今天不聊技术也不说系统,2024年高考的第一天,首先祝愿所有高考生在这特别的日子里,心态沉稳,答题顺利,让多年的努力在这一刻绽放光芒。 高考,这个承载了无数青春梦想与汗水的…

【栈】2751. 机器人碰撞

本文涉及知识点 栈 LeetCode2751. 机器人碰撞 现有 n 个机器人,编号从 1 开始,每个机器人包含在路线上的位置、健康度和移动方向。 给你下标从 0 开始的两个整数数组 positions、healths 和一个字符串 directions(directions[i] 为 ‘L’ …

OCP-042之:Oracle结构体系

1. Oracle结构体系 1.1 概述 1.1.1 版本 版本后缀所代表的含义 i:代表基于Internet架构的数据库,如9i g:代表基于grid(网格)的数据库,如11g grid的目的:降低成本,提高服务质量,简化管理 Storage Grid:ASM(automatic storage management),继承了LVM技术,Oracl…

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

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

OpenCompass 大模型评测作业(lesson 7)

书生浦语大模型实战系列文章目录 书生浦语大模型全链路开源体系发展历程和特点(lesson 1) 部署 InternLM2-Chat-1.8B(lesson 2-1) 部署八戒demo InternLM2-Chat-1.8B(lesson 2-2) 部署InternLM2-Chat-7B 模…

每日两题6

文章目录 删除并获得点数粉刷房子 删除并获得点数 分析 class Solution { public:int deleteAndEarn(vector<int>& nums) {const int N 10001;// 预处理int arr[N] {0};for (int& e : nums)arr[e] e;// 在 arr 上进行 打家劫舍 问题vector<int> f(N),…

转型AI产品经理(5):“锚定效应”如何应用在Chatbot产品中

锚定效应是认知心理学中一个重要的概念&#xff0c;它描述了人们在进行判断或决策时&#xff0c;往往过于依赖最先接收到的信息或数字&#xff08;即“锚点”&#xff09;&#xff0c;即使后续信息与初始锚点无关甚至相反&#xff0c;这个初始信息也会显著地影响最终的判断结果…

哈希表与哈希扩容

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

【虚拟现实】一、AR与VR的基本原理

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 增强现实&#xff08;AR&#xff09;和虚拟现实&#xff08;VR&#xff09;技术已经从科幻小说走入现实&#xf…