如何给服务器换个新硬盘?用新硬盘替换原本 /home 目录?

想给服务器换个大点的硬盘,把 /home 下的内容全拷贝到新硬盘,并确保重启系统依然能从自动挂载新硬盘到/home目录。

前提

  1. root 用户或者具有 sudo 权限

目标

将 sdb1 替换成 sdc1

Device     Boot Start        End    Sectors   Size Id Type
/dev/sdb1  *     2048 1162104831 1162102784 554.1G  7 HPFS/NTFS/exFAT
...
Device     Start        End    Sectors   Size Type
/dev/sdc1   2048 1562824334 1562822287 745.2G Linux filesystem

步骤

1. 挂载新硬盘

新建挂载点,先把 sdc1 挂载上来再操作。

sudo mkdir /mnt/home
mount /mnt/home sdc1

如果你的硬盘已经使用过了,可见 sdc1 sdc2 等,硬盘里面存储了很多内容,已经分区过了。我们可以将新硬盘所有数据都删除。也就是格式化。

sudo fdisk /dev/sdc  // 删除所有的sdc里面的分区,只留下 sdc1
mkfs -t ext4 /dev/sdc1   // 格式化

只剩下sdc1分区

格式化分区以后,再执行 mount

2. 拷贝 home目录

  1. 拷贝 home
cp -a /home/* /mnt/home/ 

原本的 /home 内容,我们也不愿意删除,就给它重命令为 home_old

  1. 重命名 /home 备份
sudo mv /home /home_old

这时候经常会报错:

mv: cannot move '/home' to '/home_old': Device or resource busy

这是因为 /home 下有些进程被开启了。我们关闭这些进程就行,但是可能关不干净,所以我们用命令:

umount -l /dev/sdb1  // sdb1 原本是挂载在 /home 目录的。先卸载。-l 代表,当没有进程被使用的时候再卸载。
sudo kill -9 `lsof /dev/sdb1 | awk '{print $2}'`    // 强制杀死 /dev/sdb1 下的所有进程。

之所以需要 umount -l 是因为有些进程可能是守护进程开启的,即使 kill ,也会立刻被系统重新启动,永远杀不干净。

此时,我们就可以 mv /home /home_old 了。
3. 新建 /home

sudo mkdir /home
sudo mount /dev/sdc1 /home

新建home
此时,新硬盘就挂载到 /home 目录了,可以用了。

3. 重启时自动挂载

但是要保证重启的时候,依然能将 sdc1 挂载到 /home ,而不是又回到原本 sdb1 挂载到 /home,就需要修改 /etc/fstab 文件。

sudo vi  /etc/fstab

将原本 sdb1 对应的 default 这一行,改为sdc1:
最后一行改为

重启后原硬盘内容消失了?

重启后发现我们创建的 /home_old 的内容仅剩下个别名字了。大部分内容都消失了。别担心,mount 挂载 sdb1 回来就行了。

sudo mount /home_old /dev/sdb1

我们原本的内容都存在 sdb1 这个旧硬盘里,只要没删除是不会消失的。

备注:

fstab 格式说明

 # <file system>   <mount point>   <type>  <options>  <dump>  <pass>

第一列:设备名或者设备卷标名,(UUID或者/dev/sdb)
第二列:设备挂载目录        (例如上面的“/”或者“/home”)
第三列:设备文件系统          (例如上面的“ext4”或者“vfat”)
第四列:挂载参数    
defaults 大多数系统使用defaults就可以满足需要。 为了安全起见,也可以指明其他挂载参数,例如:
noexec(不允许可执行文件可执行,但千万不要把根分区挂为noexec,那就无法使用系统了,连mount 命令都无法使用了,这时只有重新做系统了!
nodev(不允许挂载设备文件)
nosuid,nosgid(不允许有suid和sgid属性)
nouser(不允许普通用户挂载)
第五列:指定分区是否被dump备份 (0代表不备份,1代表每天备份,2代表不定期备份,一般根分区要备份)
第六列:指明自检顺序。 (0为不自检,1或者2为要自检,如果是根分区要设为1,其他分区只能是2)

参考链接:
https://blog.csdn.net/wz22881916/article/details/101083044

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值