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下磁盘空间不足

    我有一个程序 当写入某个文件的磁盘空间不足时 该程序可能会死掉 我不确定是否是这种情况 我想运行它并查看 但我的测试服务器不会很快耗尽空间 有什么办法可以嘲笑这种行为吗 看起来没有任何方法可以在 Ubuntu 中设置文件夹 文件大小限制 并
  • 变量作为 bash 数组索引?

    bin bash set x array counter 0 array value 1 array 0 0 0 for number in array do array array counter array value array co
  • ARM 系统调用的接口是什么?它在 Linux 内核中的何处定义?

    我读过有关 Linux 中的系统调用的内容 并且到处都给出了有关 x86 架构的描述 0x80中断和SYSENTER 但我无法追踪 ARM 架构中系统调用的文件和进程 任何人都可以帮忙吗 我知道的几个相关文件是 arch arm kerne
  • 将 stdout 作为命令行 util 的文件名传递?

    我正在使用一个命令行实用程序 该实用程序需要传递文件名以将输出写入 例如 foo o output txt 它唯一写入的东西stdout是一条消息 表明它运行成功 我希望能够通过管道传输写入的所有内容output txt到另一个命令行实用程
  • 静态链接共享对象?或者损坏的文件?

    我有一个从专有来源获得的库 我正在尝试链接它 但出现以下错误 libxxx so 文件无法识别 文件格式无法识别 Collect2 ld 返回 1 退出状态 确实 ldd libxxx so statically linked 这究竟意味着
  • 在中断时获取 current->pid

    我正在Linux调度程序上写一些东西 我需要知道在我的中断到来之前哪个进程正在运行 当前的结构可用吗 如果我在中断处理程序中执行 current gt pid 我是否可以获得我中断的进程的 pid 你可以 current gt pid存在并
  • 如何在 Linux x86_64 上模拟 iret

    我正在编写一个基于 Intel VT 的调试器 由于当 NMI Exiting 1 时 iret 指令在 vmx guest 中的性能发生了变化 所以我应该自己处理vmx主机中的NMI 否则 guest会出现nmi可重入错误 我查了英特尔手
  • Windows 与 Linux 文本文件读取

    问题是 我最近从 Windows 切换到 Ubuntu 我的一些用于分析数据文件的 python 脚本给了我错误 我不确定如何正确解决 我当前仪器的数据文件输出如下 Header 有关仪器等的各种信息 Data 状态 代码 温度 字段等 0
  • 是否有可能在linux中找到包含特定文本的文件?

    考虑这种情况 我在文件夹 Example 下有很多文件 如果我需要找到一个包含特定短语 如 Class Example 的文件 我该如何使用 Linux shell 来做到这一点 linux中有类似 定位 的函数可以做到这一点吗 Thank
  • Linux 中的电源管理通知

    在基于 Linux 的系统中 我们可以使用哪些方法 最简单的方法 来获取电源状态更改的通知 例如 当计算机进入睡眠 休眠状态等时 我需要这个主要是为了在睡眠前保留某些状态 当然 在计算机唤醒后恢复该状态 您只需配置即可获得所有这些事件acp
  • R 未获取用户库

    我有一个带 R 3 6 0 的 Fedora 30 系统 用户库设置在Renviron就像这个 R LIBS USER R LIBS USER R x86 64 redhat linux gnu library 3 6 事实上 它出现在交互
  • Linux、ARM:为什么仅当启动时存在 I2C GPIO 扩展器时才创建 gpiochip

    在 imx6sx 硬件平台 NXP 嵌入式 ARM 上使用 Linux 3 14 52 问题是设备树中指定的 PCF8575 I2C GPIO 扩展器不会实例化为 sys class gpio 结构中的设备 除非它们在内核启动期间存在 这些
  • 如何从 Linux 的 shell 中删除所有以 ._ 开头的文件?

    确实如标题所示 我已将许多文件从 Mac 复制到 Raspberry Pi 这导致了许多以前缀开头的多余文件 我想删除以以下开头的文件夹中的每个文件 我该怎么做 尝试类似的方法 cd path to directory rm rf 或者 如
  • 错误:NVIDIA-SMI 失败,因为无法与 NVIDIA 驱动程序通信

    NVIDIA SMI 抛出此错误 NVIDIA SMI 失败 因为无法与 NVIDIA 通信 司机 确保安装了最新的 NVIDIA 驱动程序并且 跑步 我清除了 NVIDIA 并按照提到的步骤重新安装了它here https askubun
  • perf stat中的cycles注释是什么意思

    8 014196 task clock 0 004 CPUs utilized 204 context switches 0 025 M sec 32 cpu migrations 0 004 M sec 0 page faults 0 0
  • 在 shell 脚本中查找和替换

    是否可以使用 shell 在文件中搜索然后替换值 当我安装服务时 我希望能够在配置文件中搜索变量 然后在该值中替换 插入我自己的设置 当然 您可以使用 sed 或 awk 来完成此操作 sed 示例 sed i s Andrew James
  • “grep -q”的意义是什么

    我正在阅读 grep 手册页 并遇到了 q 选项 它告诉 grep 不向标准输出写入任何内容 如果发现任何匹配 即使检测到错误 也立即以零状态退出 我不明白为什么这可能是理想或有用的行为 在一个程序中 其原因似乎是从标准输入读取 处理 写入
  • 如何用X11复制到剪贴板?

    使用 OS X 上的框架 我可以使用以下命令将 PNG 复制到粘贴板 在 C 中 显然我可以将 NSPasteboard 与 Cocoa 一起使用 include
  • 构建 makefile 依赖/继承树

    如果我解释得不好或者问了一些明显的问题 我很抱歉 但我是 Linux 内核的新手 而且有点深入 我们有一个嵌入式 Linux 系统 它附带一个 文档非常糟糕的 SDK 其中包含数百个文件夹stuff 大多数文件夹包含rules make m
  • 为什么在 Linux 上字符串文字的内存地址与其他字符串文字的内存地址如此不同?

    我注意到字符串文字在内存中的地址与其他常量和变量 Linux 操作系统 非常不同 它们有许多前导零 未打印 Example const char h Hi int i 1 printf p n void h printf p n void

随机推荐