欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux硬盘空间不够挂载新盘

程序员文章站 2022-05-20 08:49:51
...

实验室硬件更新,新添了几块硬盘,因为原来的硬盘非常小,所以需要把新安装的硬盘分给大家使用,任务就是每台机器一块1T的硬盘,然后我就想着,这1T不能完全用在/home文件夹,万一以后软件装的比较多,原来的系统盘空间也是有限的,所以我打算将这块1t的盘分成两个小的,一个挂载 /home 大家的文件放到这里, 另一个挂载 /usr ,通用的软件一般都装在这里。

主要流程:

硬盘分区

查看硬盘信息

硬盘插到电脑的SATA端口上,我们可以用命令查看是否有新的硬盘
fdisk -l
该命令会把所有硬盘的信息列出来,包括有几个硬盘,每个硬盘有几个分区,每个硬盘都有详细的信息,一定要搞清楚哪个硬盘对应的是哪个文件 ,可以根据硬盘的大小,分区,具体信息
比如说,我们新插上的硬盘就是/dev/sdb 表示新硬盘, /dev/sda 表示的是原来的系统盘,/dev/sda1 表示的是原来的系统分区1, /dev/sda2表示的是原来的系统分区2。 因为新装的硬盘没有进行分区,所以没有 /dev/sdb1 ......

分区

上面我们知道了新的硬盘是/dev/sdb 你自己的情况可能不一样哦, 然后我们用fdisk 工具创建分区
命令:fdisk /dev/sdb
然后fdisk 这个软件提醒你 按 m键查看帮助,我们按m键,发现各个参数的意义,比如说

n  创建新分区
w 写入操作,也就是确认的意思
d 删除分区
  1. 新建分区1:按n 然后回车,它会提醒你是建立主分区(primary)还是(addition)分区,默认是 主分区,这里就按照自己的要求建立就可以,我们选择默认,然后会确定该分区的起始扇区和最终扇区,这个扇区是按照bit运算的,和我们平时遇到的不一样,最终扇区要认真思考再写,因为默认起始扇区是硬盘开始的地方,默认最终扇区是硬盘最后,如果想要建立多个分区,就不能选择默认,要根据你需要的大小选择,这里我们选择2/3 大小建立第一个分区给这个分区,然后选择分区编号,这里默认就可以了,这个分区编号就是硬盘sdb后面跟着的数字。 最终建立了新的分区 /dev/sda1
  2. 新建分区2:分区1建立完成,又回到可以输入命令的那里,然后我们再一次输入n, 重复上面步骤建立第二个分区 /dev/sda2
  3. 完成分区:按w确认分区,就完成了分区操作
  4. 查看新建的分区: fdisk -l可以看到新建立的分区的信息

格式化

命令:mkfs
依次对上面建立的新分区格式化

  1. 分区1 格式化mkfs -t ext4 /dev/sda1
    -t 参数后面加分区格式,我们选择 ext4
  2. 分区2 格式化 mkfs -t ext4 /dev/sda2

新硬盘挂载

要把原来的硬盘中的/home /usr迁移到新的硬盘上,首先要把新硬盘挂载上,然后再把文件同步到新硬盘上

挂载方式 UUID

我们采用UUID方式挂载硬盘,每次开机都会自动挂载,且不会混乱

  1. 新建挂载文件夹
    mkdir /home_back /usr_back
  2. 获取 硬盘 UUID
    命令:blkid
    输入该命令,就会出现每个分区对应的UUID,然后把 /dev/sdb1 /dev/sdb2 的UUID记住,下一步使用
  3. 修改 /etc/fstab文件,这个文件记录系统挂载信息,我们加入新的两行
UUID=********* /home_back ext4 defaults 0 0
UUID=********* /usr_back ext4 defaults 0 0

把对应上一步获得的UUID填到******* 处,第二个是目标文加夹, 第三个参数是 分区格式 第四个 我们用默认的,第五个和第六个参数我们选则 0
详情参考这篇博客 /etc/fstab 详解
4. 挂载
命令:mount -a
-a表示的是从 /etc/fstab文件中挂载
5. 查看挂载结果:
命令:df -h
你就会发现两个新的分区就挂载在 /home_back, /usr_back

数据迁移

把原来 /home /usr文件夹中的文件迁移到新的硬盘上,现在新的硬盘挂载到了 /home_back /usr_back

命令:(逐条运行)

rsync -aXS --exclude='/*/.gvfs' /home/. /home_back/.
rsync -aXS --exclude='/*/.gvfs' /usr/. /usr_back/.

这样数据就迁移到新的硬盘上了,并且里面文件权限不变,可能文件较多需要很久的时间。

最后一步

迁移成功后就是换以下名字的事情

  1. 更改 /etc/fstab
    将上面添加的两行
UUID=********* /home_back ext4 defaults 0 0
UUID=********* /usr_back ext4 defaults 0 0

改成

UUID=********* /home ext4 defaults 0 0
UUID=********* /usr ext4 defaults 0 0

这个时候先不要mount 先备份以下数据

  1. 备份原来的数据
    命令:mv /home /home_old mv /usr /usr_old
    这样原来的数据就备份在 /home_old /usr_old

  2. 新建 home usr
    命令: mkdir /home /usr

  3. 刷新挂载
    命令:mount -a

这样就完成数据的迁移了,是不是很容易的,后面如果/home_old /usr_old没有了可以删掉了, 都不需要重启

df -h 你会发现,新的两个分区已经完美挂载到了 /home /usr上了