虚拟机添加新磁盘挂载,导致以前的文件丢失解决办法
刚开始创建虚拟机时,由于磁盘分配的空间比较小,所以很快就用完了:
[root@host1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 18G 0 100% / tmpfs 996M 0 996M 0% /dev/shm /dev/sda1 190M 40M 140M 23% /boot /dev/sr0 3.7G 3.7G 0 100% /mnt
新加一块磁盘,然后分区,格式化,挂载目录/data,导致/data目录以前的文件丢失:
[root@host1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 18G 0 100% / tmpfs 996M 0 996M 0% /dev/shm /dev/sda1 190M 40M 140M 23% /boot /dev/sr0 3.7G 3.7G 0 100% /mnt /dev/sdb1 50G 6.8G 40G 15% /data
使用umount命令取消挂载就可以了
[root@host1 ~]# umount /dev/sdb1 umount: /data: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
如果在/data目录下有程序正在使用时,直接取消挂载会提示device is busy的信息,这时找到/data目录下运行程序的PID,然后kill掉,再umount就行了
[root@host1 ~]# fuser -m /data /data: 4567c [root@host1 ~]# ps aux | grep 4567 root 4567 0.0 0.0 108604 2028 pts/1 Ss+ 13:17 0:00 -bash root 8213 0.0 0.0 103320 864 pts/0 S+ 15:00 0:00 grep 4567 [root@host1 ~]# kill -9 4567 [root@host1 ~]# fuser -m /data [root@host1 ~]# umount /dev/sdb1 [root@host1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 18G 0 100% / tmpfs 996M 0 996M 0% /dev/shm /dev/sda1 190M 40M 140M 23% /boot /dev/sr0 3.7G 3.7G 0 100% /mnt [root@host1 ~]# ls /data/ | wc -l 22
此时/data目录下的数据就都回来了,再在/etc/estab下重新写一个挂载磁盘的命令,磁盘数据也回来了:
[root@host1 ~]# echo "/dev/sdb1 /test ext4 defaults 0 0" >> /etc/fstab [root@host1 ~]# mount -a [root@host1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 12G 5.1G 70% / tmpfs 996M 0 996M 0% /dev/shm /dev/sda1 190M 40M 140M 23% /boot /dev/sr0 3.7G 3.7G 0 100% /mnt /dev/sdb1 50G 6.8G 40G 15% /test
PS
或者使用:umount -l /data 强行解除挂载