Linux新磁盘挂载到/home目录

2023-05-16

经常会遇到服务用着用着发现空间不够啦!怎么办呢?

备份数据=》使用更大的磁盘重新安装系统 =》转移数据。这样太麻烦了,如果是生产环境,还要停机。
增加新的磁盘。
这里我选择方法 2

空间不足时,需要挂载新的磁盘扩容。如何操作呢?我把我的操作过程记录下来。

友情提醒:
数据无价,谨慎操作。
本教程,只是记录了我的操作过程,仅供参考,操作前请自行备份好数据。 出现任何数据问题,本文不负责。

本文是自己摸索的结果,不一定是最佳的方案。仅供参考。推荐自己在虚拟机中测试后,符合自己的需求在尝试。

环境

我在自己虚拟机中操作。
CentOS Linux release 7.9.2009 (Core)

挂载新磁盘前的分区结构:

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 575M     0  575M    0% /dev
tmpfs                    586M     0  586M    0% /dev/shm
tmpfs                    586M  9.0M  577M    2% /run
tmpfs                    586M     0  586M    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  1.4G   16G    9% /
/dev/sda2               1014M  160M  855M   16% /boot
/dev/sda1                200M   12M  189M    6% /boot/efi
tmpfs                    118M     0  118M    0% /run/user/0

新增磁盘

把虚拟机关机

设置中添加设备
在这里插入图片描述
点击新硬盘
在这里插入图片描述
增加新硬盘
在这里插入图片描述
查看当前磁盘情况

fdisk -l

在这里插入图片描述
磁盘格式化

mkfs.ext3 /dev/sdb

执行日志如下:

[root@localhost ~]# mkfs.ext3 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
786432 inodes, 3145728 blocks
157286 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=3221225472
96 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

挂载

以下操作没有特殊说明都是使用root权限操作的。

创建目录

mkdir /media/home

/dev/sdb挂载到/media/home

mount /dev/sdb /media/home

同步/home到/media/home

使用cp也行,只要能备份好数据就行。

同步时间根据数据量大小决定,建议在系统空闲时操作。

安装rsync

yum install rsync

同步数据

rsync -aXS /home/. /media/home/.

卸载分区

umount /media/home/

直接把新分区挂载到/home

mount /dev/sdb /home

现在我们在来查看一下分区情况

[root@localhost home]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 575M     0  575M    0% /dev
tmpfs                    586M     0  586M    0% /dev/shm
tmpfs                    586M  9.0M  577M    2% /run
tmpfs                    586M     0  586M    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  1.5G   16G    9% /
/dev/sda2               1014M  160M  855M   16% /boot
/dev/sda1                200M   12M  189M    6% /boot/efi
tmpfs                    118M     0  118M    0% /run/user/0
/dev/sdb                  12G   31M   12G    1% /home

发现新的磁盘已经成功的挂载到了/home
/dev/sdb 12G 31M 12G 1% /home

这个时候还没有完全成功,因为当系统重启和,挂载点就会消失。我们要配置开机自动挂载。
比如我现在重新后,分区信息如下:

[root@localhost home]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 575M     0  575M    0% /dev
tmpfs                    586M     0  586M    0% /dev/shm
tmpfs                    586M  8.9M  578M    2% /run
tmpfs                    586M     0  586M    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  1.5G   16G    9% /
/dev/sda2               1014M  160M  855M   16% /boot
/dev/sda1                200M   12M  189M    6% /boot/efi
tmpfs                    118M     0  118M    0% /run/user/0

配置开机自动挂载

因为mount命令会在重启服务器后失效,所以要将分区信息写到/etc/fstab文件中让它永久挂载:

sudo vi /etc/fstab

增加如下一行:

/dev/sdb                /home          ext3    defaults        0 0

第1列是设备名或者卷标

第2列是挂载点(也就是挂载目录)

第3列是所要挂载设备的文件系统或者文件系统类型

第4列是挂载选项,通常使用defaults就可以

第5列设置是否使用dump备份,置0为不备份,置1,2为备份,但2的备份重要性比1小

第6列设置是否开机的时候使用fsck检验所挂载的磁盘,置0为不检验,置1,2为检验,但置2盘比置1的盘晚检验。

当前的配置文件全部内容如下:

#
# /etc/fstab
# Created by anaconda on Fri Jan 15 21:11:57 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=b35b2005-ebc2-4f8d-bde2-783ee0f560db /boot                   xfs     defaults        0 0
UUID=49C9-E843          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb                /home                   ext3    defaults        0 0

这时就算重启机器,分区也是正常的。

本文结束。

参考

https://blog.csdn.net/lxyoucan/article/details/113697472
https://zhuanlan.zhihu.com/p/307657410

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux新磁盘挂载到/home目录 的相关文章

  • Linux C++ 错误:未定义对“dlopen”的引用

    我在 Linux 上使用 C Eclipse 工作 并且想要使用一个库 Eclipse 向我显示一个错误 undefined reference to dlopen 你知道解决办法吗 这是我的代码 include
  • 内核驱动程序从用户空间读取正常,但写回始终为 0

    因此 我正在努力完成内核驱动程序编程 目前我正在尝试在应用程序和内核驱动程序之间构建简单的数据传输 我使用简单的字符设备作为这两者之间的链接 并且我已成功将数据传输到驱动程序 但我无法将有意义的数据返回到用户空间 内核驱动程序如下所示 in
  • linux新手关于嵌入式linux设备驱动的问题

    最近在研究linux驱动 正如我读过的那些文章所说 设备驱动程序模块很可能会根据内核的需要自动加载 因此我想知道内核如何确定为特定设备 声卡 I2C spi 设备 等 我也无法彻底想象内核如何在启动时检测每个硬件设备 与嵌入式linux相关
  • 如何从脚本编辑 /etc/sudoers?

    我需要编辑 etc sudoers从脚本中添加 删除白名单中的内容 假设我有一个可以处理普通文件的命令 我如何将其应用到 etc sudoers 我可以复制并修改它 然后有visudo用修改后的副本替换原始版本 通过提供我自己的脚本 EDI
  • Linux中如何避免sleep调用因信号而中断?

    我在 Linux 中使用实时信号来通知串行端口中新数据的到达 不幸的是 这会导致睡眠呼叫在有信号时被中断 有人知道避免这种行为的方法吗 我尝试使用常规信号 SIGUSR1 但我不断得到相同的行为 来自 nanosleep 联机帮助页 nan
  • 对于任何真实数据集,数据压缩比的最小可能值是多少

    我在写信ZLIB类似于嵌入式硬件压缩器的 API 它使用 deflate 算法来压缩给定的输入流 在进一步讨论之前 我想解释一下数据压缩率 数据压缩率定义为未压缩大小与压缩大小之间的比率 压缩比通常大于一 这意味着压缩数据通常比未压缩数据小
  • 在 scapy 中通过物理环回发送数据包

    我最近发现了 Scapy 它看起来很棒 我正在尝试查看 NIC 上物理环回模块 存根上的简单流量 但是 Scapy sniff 没有给出任何结果 我正在做的发送数据包是 payload data 10 snf sniff filter ic
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • 链接错误:命令行中缺少 DSO

    我对 Linux 使用 Ubuntu 14 04 LTS 64 位 相当陌生 来自 Windows 并且正在尝试移植我现有的 CUDA 项目 当通过链接时 usr local cuda bin nvcc arch compute 30 co
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • 来自守护程序的错误响应:加入会话密钥环:创建会话密钥:超出磁盘配额

    我尝试在我的服务器上安装 docker 使用本教程 https docs docker com install linux docker ce ubuntu 我想远程运行 docker 镜像并使用 portainer Web 界面来管理一切
  • Ubuntu Python shebang 线不工作

    无法让 shebang 线在 Ubuntu 中为 python 脚本工作 我每次只收到命令未找到错误 test py usr bin env python print Ran which python usr bin python 在 sh
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • 为什么 fork 炸弹没有使 android 崩溃?

    这是最简单的叉子炸弹 我在许多 Linux 发行版上执行了它 但它们都崩溃了 但是当我在 android 终端中执行此操作时 即使授予后也没有效果超级用户权限 有什么解释为什么它没有使 Android 系统崩溃吗 一句话 ulimit Li
  • awk 在循环中使用时不打印任何内容[重复]

    这个问题在这里已经有答案了 我有一堆使用 file 1 a 1 txt 格式的文件 如下所示 A 1 B 2 C 3 D 4 并使用以下命令添加包含每个文件名称的新列 awk print FILENAME NF t 0 file 1 a 1
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip

随机推荐