动态挂载过很多次磁盘,迁移过很多次数据。虽然重复了很多次,但是一直没有记住过这一系列的命令,估计以后也记不住,因此为了方便自己,做个记录。
一、首先需要让 Linux 识别新挂载的磁盘
参考:
Linux不重启识别新挂载的磁盘不重启Linux主机来识别新加的硬盘
先看有哪些总线连接着:
[root@localhost ~]# ls /sys/class/scsi_host/
有很多相近的文章都有类似的内容,有些会告诉你怎么找是那个 host,如果只有少数几个,可以都直接执行。本来我自己认为不需要去找,都执行一次就好了,直到我发现这么多,总不能都输出一遍吧,还是要知道怎么找具体是哪个 host。
使用下面的命令查找:
grep mpt /sys/class/scsi_host/host*/proc_name
注意上面写的
host*
。上面命令的输出结果类似下面:
/sys/class/scsi_host/host14/proc_name:mptspi
通过上面方式找到了 host14
其次,重新扫描SCSI 总线来添加设备:
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host14/scan
之所以扫描的是SCSI 总线,是因为我们添加的是 SCSI 类型的磁盘。
再次,查看一下新挂载的磁盘,此时 Linux 已经可以识别新添加的磁盘:
[root@localhost ~]# fdisk -l
最后,对新挂载的磁盘进行分区,格式化,挂载即可使用。
二、分区
参考:Ubuntu服务器挂载新硬盘的步骤 下面记录执行的具体命令
fdisk -l
查看所有磁盘,然后选择要进行分区的磁盘,比如新磁盘是 /dev/sda
。
root@zhang:~# fdisk /dev/sdb
# 输入 n,创建新分区,使用整个磁盘的情况下,后续全部使用默认值即可,这里不再列举
Command (m for help): n
# 配置分区后,输入 w 保存退出
Command (m for help): w
之后通过 fdisk -l
应该能看到一个 /sdev/sdb1
分区。
三、格式化
后续部分参考: 五、创建分区、格式化、挂载
执行下面命令即可:
[root@localhost ~]# mkfs.ext4 /dev/sdb1
四、挂载
创建要挂载的目录,然后挂载即可:
[root@localhosts ~]# mkdir /data
[root@localhost ~]# mount /dev/sdb1 /data
取消挂载方法:
umount /dev/sdb1
五、开机挂载
更新 /etc/fstab
[root@localhost ~]# vi /etc/fstab
在最后添加下面的配置:
/dev/sdb1 /data ext4 defaults 1 2
六、迁移数据
由于我这里使用最小安装,并且在局域网内,因此没有 rsync
工具,只能使用 cp
方式。
rsync 可以参考: 使用 rsync 命来快速迁移服务器数据
使用 cp 命令时,可以通过 -p
来保留文件的属性信息,通过 -r
递归复制目录。
因此命令类似 cp -rfp 要复制的目录 /data
七、补充
继续补充。