Jump to content

13.自己做CentOS 8鏡像


Jack

Recommended Posts

---------------------------
自己做CentOS 8鏡像
---------------------------

參考
https://cloud.tencent.com/document/product/213/17814?from=14588


检查OS分区和启动方式
1.执行以下命令,检查OS分区是否为GPT分区
sudo parted -l /dev/sda | grep 'Partition Table'


返回结果 Partition Table: msdos
表示为MBR分区,执行下一步

 

2.执行命令,检查操作系统是否以EFI方式启动
sudo ls /sys/firmware/efi


如果不存在文件 cannot access '/sys/firmware/efi': No such file or directory

执行下一步

 

--------------------
检查virtio驱动
--------------------

步骤1:检查内核是否支持 Virtio 驱动
执行命令,确认当前内核是否支持 Virtio 驱动
grep -i virtio /boot/config-$(uname -r)


返回结果
CONFIG_VIRTIO_BLK=m
CONFIG_VIRTIO_NET=m

 

步骤2:检查临时文件系统是否包含Virtio驱动
lsinitrd /boot/initramfs-$(uname -r).img | grep virtio


返回结果
usr/lib/modules/4.18.0-305.25.1.el8_4.x86_64/kernel/drivers/block/virtio_blk.ko.xz
usr/lib/modules/4.18.0-305.25.1.el8_4.x86_64/kernel/drivers/char/virtio_console.ko.xz
usr/lib/modules/4.18.0-305.25.1.el8_4.x86_64/kernel/drivers/net/virtio_net.ko.xz
usr/lib/modules/4.18.0-305.25.1.el8_4.x86_64/kernel/drivers/scsi/virtio_scsi.ko.xz

 

----------------
导出镜像
----------------

使用dd命令,导出raw格式的镜像
sudo dd if=/dev/vda of=/mnt/vps2/vultr.img bs=1K


完成後,離開
exit

 


-----------------------------------------
SSH第2台VPS,導出的鏡像存放在這裡
-----------------------------------------

SSH連接第2台VPS


顯示鏡像大小
du -shc /home/wwwroot/*


鏡像大小 56GB
56G   /home/wwwroot/vultr.img

 


-------------------------
轉換鏡像格式
-------------------------

通过dd命令导出的镜像为raw格式,建议转换为qcow2,vhd或其他镜像格式
使用qemu-img命令,转换镜像格式


安裝qemu-img
yum -y install qemu-img

 


轉換鏡像格式
sudo qemu-img convert -f raw -O vpc /home/wwwroot/vultr.img /home/wwwroot/vultr.vhd

 


完成後,顯示鏡像大小
du -shc /home/wwwroot/*

56G    /home/wwwroot/vultr.img

8.9G    /home/wwwroot/vultr.vhd

好奇怪,vultr.vhd鏡像並不是8.9GB,vultr.vhd鏡像的實際大小50多GB

 

------------------
檢查鏡像
------------------

检查是否已有 nbd 模块,命令
modprobe nbd

 

lsmod | grep nbd

 


返回结果,则说明已有 nbd 模块
nbd                    49152  0

 


检查镜像,命令
qemu-nbd -c /dev/nbd0 vultr.vhd

 

mount /dev/nbd0p1 /mnt

 

执行 qemu-nbd 命令后,/dev/nbd0 就映射了 vultr.vhd 中的内容

而 /dev/nbd0p1 代表该虚拟磁盘的第一个分区

若 nbd0p1 不存在或 mount 不成功,则很可能是镜像错误

 

 

-------------------------
將鏡像壓縮為gz格式
-------------------------

cd /home/wwwroot/

gzip vultr.vhd

 

將鏡像壓縮為gz格式

完成,顯示鏡像大小

du -shc /home/wwwroot/*

3.7G    /home/wwwroot/vultr.vhd.gz

壓縮後的 vultr.vhd.gz 大小為3.7GB

 


-----------------------------------------------
移動鏡像
-----------------------------------------------

將鏡像移動到 /home/wwwroot/default
mv  /home/wwwroot/vultr.vhd.gz /home/wwwroot/default


之前我開第2台VPS (存放自己做的鏡像),那時候用LNMP 1.8的快照恢復第2台VPS的系統

現在只要輸入第2台VPS的IP,就可以下載鏡像

http://第2台VPS的IP/vultr.vhd.gz


離開
exit

Edited by Jack
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...