【Gitlab】虚拟机硬盘文件丢失,通过xx-flat.vmdk恢复方法

前言

由于近期过年回家,为了用电安全直接手动关闭了所有的电源,导致年后回来商上电开机后exsi上的虚拟机出现了问题。显示我的gitlab虚拟机异常。

恢复

开机之后虚拟机异常,通过磁盘浏览发现gitlab服务器下面的虚拟机磁盘文件只有一个xxx-flat.vmdk文件了。问题不大好在所有的数据存储都在这个vmdk中,我们尝试恢复我们的数据。

首先我们先恢复正常的vmdk磁盘

bash 复制代码
ls -l Ubuntu_prod-flat.vmdk
cp Ubuntu_prod-flat.vmdk tmp_Ubuntu_prod-flat.vmdk 
ls -la
vmkfstools -c 214748364800 -a lsilogic Ubuntu.vmdk
mv Ubuntu_prod-flat.vmdk Ubuntu-flat.vmdk

这里新的vmdk文件不能和之前的存在相同的命令否在会报错。接下来新建虚拟机,然后挂在这个vmdk文件

bash 复制代码
sudo mkdir -p /mnt/disk
sudo mount /dev/sdb2 /mnt/disk

这里我的gitlab使用的是docker的部署方式,首先我需要先启动docker,使用chroot切换,然后手动启动docker

bash 复制代码
chroot ./
su -
# 创建必要的目录
mkdir -p /dev /proc /sys /run
# 绑定挂载设备和文件系统
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t tmpfs tmpfs /tmp
mount -t devpts devpts /dev/pts

# 手动启动docker守护进程
sudo dockerd &
# 如果报错Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?手动重启docker
ps aux | grep dockerd
kill -9 pid

如果报错如下图

执行下面命令

bash 复制代码
mkdir -p /sys/fs/cgroup
mount -t tmpfs cgroup_root /sys/fs/cgroup
mkdir /sys/fs/cgroup/{cpu,cpuset,blkio,memory,devices,pids}
mount -t cgroup -o cpu none /sys/fs/cgroup/cpu
mount -t cgroup -o cpuset none /sys/fs/cgroup/cpuset
mount -t cgroup -o blkio none /sys/fs/cgroup/blkio
mount -t cgroup -o memory none /sys/fs/cgroup/memory
mount -t cgroup -o devices none /sys/fs/cgroup/devices
mount -t cgroup -o pids none /sys/fs/cgroup/pids

sudo dockerd &

docker服务就起来了,这样我们就可以把docker镜像导出来了

这里我的gitlab的数据都在/usr/local/gtilab下面这里使用了最简单方法使用rsync进行数据同步

bash 复制代码
rsync -av ./usr/local/gitlab/ root@192.168.8.88:/usr/local/gitlab/

*注意这里需要使用root权限,否则在后面的docker run环节会出现权限问题报错

在新服务器上使用命令导入docker镜像然后直接run就可以了

bash 复制代码
docker load -i gitlab-ce-latest.tar

sudo docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab -v /usr/local/gitlab/etc:/etc/gitlab -v /usr/local/gitlab/log:/var/log/gitlab -v /usr/local/gitlab/data:/var/opt/gitlab --privileged=true gitlab/gitlab-ce:latest

所有的数据都在接下来就是定期备份和升级gitlab即可。

相关推荐
极小狐18 小时前
极狐GitLab 18.5 正式发布,更新 Maven 虚拟仓库 UI(Beta)、全新个人主页、实例级合规与安全策略管理 以及 DAST 认证脚本 等
java·gitlab·maven
维尔切2 天前
GitLab 版本控制系统
gitlab
创实信息2 天前
创实信息正式成为极狐GitLab中国授权代理
ci/cd·gitlab·devops·代码管理·极狐
谢尔登2 天前
【GitLab/CD】前端 CD
前端·gitlab
一念一花一世界3 天前
Jenkins vs GitLab CI/CD vs Arbess,CI/CD工具一文纵评
ci/cd·gitlab·jenkins·arbess
老年DBA3 天前
Kubernetes 上的 GitLab + ArgoCD 实践(三):使用 ArgoCD 打通 CD 流程
kubernetes·gitlab·argocd
starandsea4 天前
gitlab解决传过大文件后删除导致pack过大问题
大数据·elasticsearch·gitlab
喜欢你,还有大家4 天前
集群——GitLab&&Jenkins部署
运维·gitlab·jenkins
西部森林牧歌4 天前
Arbess零基础学习,使用Arbess+GitLab实现Vue.js项目构建并主机部署
vue.js·gitlab·arbess·tiklab devops
松垮的屁兜4 天前
【gitlab】新建项目库并提交初始框架
gitlab·github