Linux硬盘空间不够挂载新盘
实验室硬件更新,新添了几块硬盘,因为原来的硬盘非常小,所以需要把新安装的硬盘分给大家使用,任务就是每台机器一块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:按
n
然后回车,它会提醒你是建立主分区(primary)还是(addition)分区,默认是 主分区,这里就按照自己的要求建立就可以,我们选择默认,然后会确定该分区的起始扇区和最终扇区,这个扇区是按照bit运算的,和我们平时遇到的不一样,最终扇区要认真思考再写,因为默认起始扇区是硬盘开始的地方,默认最终扇区是硬盘最后,如果想要建立多个分区,就不能选择默认,要根据你需要的大小选择,这里我们选择2/3 大小建立第一个分区给这个分区,然后选择分区编号,这里默认就可以了,这个分区编号就是硬盘sdb
后面跟着的数字。 最终建立了新的分区/dev/sda1
- 新建分区2:分区1建立完成,又回到可以输入命令的那里,然后我们再一次输入
n
, 重复上面步骤建立第二个分区/dev/sda2
- 完成分区:按
w
确认分区,就完成了分区操作 - 查看新建的分区:
fdisk -l
可以看到新建立的分区的信息
格式化
命令:mkfs
依次对上面建立的新分区格式化
- 分区1 格式化
mkfs -t ext4 /dev/sda1
-t
参数后面加分区格式,我们选择ext4
- 分区2 格式化
mkfs -t ext4 /dev/sda2
新硬盘挂载
要把原来的硬盘中的/home
/usr
迁移到新的硬盘上,首先要把新硬盘挂载上,然后再把文件同步到新硬盘上
挂载方式 UUID
我们采用UUID方式挂载硬盘,每次开机都会自动挂载,且不会混乱
- 新建挂载文件夹
mkdir /home_back /usr_back
- 获取 硬盘 UUID
命令:blkid
输入该命令,就会出现每个分区对应的UUID,然后把/dev/sdb1
/dev/sdb2
的UUID记住,下一步使用 - 修改
/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/.
这样数据就迁移到新的硬盘上了,并且里面文件权限不变,可能文件较多需要很久的时间。
最后一步
迁移成功后就是换以下名字的事情
- 更改
/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
先备份以下数据
-
备份原来的数据
命令:mv /home /home_old
mv /usr /usr_old
这样原来的数据就备份在/home_old /usr_old
中 -
新建
home usr
命令:mkdir /home /usr
-
刷新挂载
命令:mount -a
这样就完成数据的迁移了,是不是很容易的,后面如果/home_old /usr_old
没有了可以删掉了, 都不需要重启
df -h
你会发现,新的两个分区已经完美挂载到了 /home /usr
上了
上一篇: java中什么时候用this?