DD 官网 Ubuntu 22.10 云镜像到VPS

以 DHCP 获取 IPV4/IPV6 地址以及无后台 VNC 屏幕举例,支持 bios/efi 引导的小鸡,包括不限于:aws、az、gcp、龟壳、阿里云、腾讯云、等。

1、确定硬盘名称(此处硬盘名称是 vda )

lsblk
root@ubuntu:~# lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0     7:0    0 144.2M  1 loop /snap/lxd/24323
loop1     7:1    0  49.8M  1 loop /snap/snapd/17950
loop2     7:2    0  63.3M  1 loop /snap/core20/1822
vda     252:0    0   9.3G  0 disk
├─vda1  252:1    0   9.2G  0 part /
├─vda14 252:14   0     4M  0 part
└─vda15 252:15   0   106M  0 part /boot/efi

 2、DD mfslinux 内存救援系统到硬盘

(实际上是 OpenWrt 系统,根据 mfslinux 方法,我自己魔改了一个支持 bios/efi 的硬盘镜像实际大小不到 30M)

echo 1 > /proc/sys/kernel/sysrq
echo u > /proc/sysrq-trigger
curl -Lo- "https://drive.google.com/uc?export=download&id=1PsQf5ao-T21EGyh3lZfpxFaL-qsIHA5i" | zcat | dd of=/dev/vda bs=1M status=progress
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger

 3、等待小鸡重启进入 mfslinux 内存救援系统

ssh地址:你小鸡的地址 支持DHCP IPV4/IPV6双栈
ssh账号:root
ssh密码:mfslinux

4、下载官网 Ubuntu Cloud Image 镜像进行格式转换

qcow2转raw,压缩成 gzip 格式,并以 http 方式提供下载(以最新22.10举例)

4.1、下载

curl -LO https://cloud-images.ubuntu.com/releases/22.10/release/ubuntu-22.10-server-cloudimg-amd64.img

 4.2、转换成 raw 格式(等1分钟)

qemu-img convert -f qcow2 -O raw ubuntu-22.10-server-cloudimg-amd64.img ubuntu-22.10-server-cloudimg-amd64.raw

 4.3、压缩成 gzip 格式(等1-3分钟)

gzip -k ubuntu-22.10-server-cloudimg-amd64.raw

 4.4、以 http 方式提供下载

4.4.1、安装 nginx

apt -y install nginx

 4.4.2、更改nginx配置运行访问文件夹目录

4.4.2.1、改配置
nano /etc/nginx/sites-enabled/default
 4.4.2.2、找到
root /var/www/html;
 4.4.2.3、改成

 

root /var/www/html;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
 4.4.2.4、重启 nginx
systemctl restart nginx
 4.4.2.5、删除原来的默认页面
rm -rf /var/www/html/
 4.4.2.6、移动 ubuntu-22.10-server-cloudimg-amd64.raw 到 /var/www/html/
mv -f ubuntu-22.10-server-cloudimg-amd64.raw /var/www/html/
 4.4.2.7、获取 ubuntu-22.10-server-cloudimg-amd64.raw.gz 镜像压缩文件的 http 下载地址
http://小鸡地址/ubuntu-22.10-server-cloudimg-amd64.raw.gz

 5、DD ubuntu-22.10-server-cloudimg-amd64.raw.gz 镜像压缩文件到小鸡硬盘

curl -Lo- "http://小鸡地址/ubuntu-22.10-server-cloudimg-amd64.raw.gz" | zcat | dd of=/dev/vda bs=1M status=progress

 6、修复磁盘

parted -l

 6.1、出来提示输入 fix 并回车

7、不需要重启重读硬盘分区

partprobe

 8、扩容分区以及文件系统

parted -s /dev/vda resizepart 1 100%
e2fsck -f /dev/vda1
resize2fs /dev/vda1

 9、挂载 Ubuntu 22.10 系统分区到 /mnt

mount /dev/vda1 /mnt

 10、确认成功扩容硬盘分区以及文件系统

root@ubuntu:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs            97M  884K   96M   1% /run
/dev/vda1       8.9G  3.6G  5.3G  41% /
tmpfs           483M     0  483M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           483M     0  483M   0% /run/qemu
/dev/vda15      105M  6.1M   99M   6% /boot/efi
tmpfs            97M  4.0K   97M   1% /run/user/0
root@ubuntu:~#

 11、更改 ssh 密码、添加 ssh 公钥、设置只允许密钥登录 root 账户

11.1、生成密码

root@ubuntu:~# openssl passwd -1 mfslinux
$1$eBsXTBjL$zFxtamgy9YuaCxoieLTOg1

 11.2、更改 ssh 密码

sed -i 's/root:*/root:$1$eBsXTBjL$zFxtamgy9YuaCxoieLTOg1/g' /mnt/etc/shadow

 11.3、添加ssh密钥(红色部分改成你自己的公钥)

rm -rf /mnt/root/.ssh/
mkdir /mnt/root/.ssh/
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxbMN/h4PR+XVhpdUze/eEwxf5vw1aC0PwVdIwqsYq78A3F0wvwAUN2DuPiDhArfN5HzN6ye1TPCaXhKYZM1wGHrWjFM64XuDT0sDuFVp67rLc9McJ4YAXChNQ51Y8LBss6nHiBDjDl6AobmQ67S2GTODiG3gILdiekluXS+FfaQNSPdfaHZIxTPQc/SuqyZGpSVyW9pSkVXVZn7/EO66+f1jULMt7EjFI8fBQuZlu9oCvodQyz6JMpIYRehZr8XfPaTX84XU9p3PbG9iulMh7yW1okEvGapTnuNTouZDLASAI8BvDXrw2wJiXeQ06dmsHXAfQwf3hzRUc0vFUErC3w== rsa 2048-011123" > /mnt/root/.ssh/authorized_keys
chmod 700 /mnt/root/.ssh/
chmod 600 /mnt/root/.ssh/authorized_keys

 11.4、允许 root 密钥登录

sed -i 's/#PermitRootLogin/PermitRootLogin/g' /mnt/etc/ssh/sshd_config

 12、由于 Ubuntu、Debian 云镜像系统没有 ssh_host 密钥无法启动 sshd ,所以需要在开机脚本开机的时候生成 ssh_host ,否则 sshd 无法运行

12.1、添加开机脚本命令

cat <<EOF> /mnt/etc/rc.local
#!/bin/bash
/usr/bin/ssh-keygen -A
systemctl restart ssh
EOF

 12.2、给开机脚本添加执行权限,否则无法运行

chmod +x /mnt/etc/rc.local

 13、设置网络 DHCP 以及网卡名称(需要获取网卡mac地址)

13.1、网卡 mac 地址

root@ubuntu:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether de:1c:9c:06:60:68 brd ff:ff:ff:ff:ff:ff
    altname enp0s2
    inet 10.69.82.207/31 metric 100 scope global dynamic eth0
       valid_lft 75999sec preferred_lft 75999sec
    inet6 2603:1040:200:3::1/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::dc1c:9cff:fe06:6068/64 scope link
       valid_lft forever preferred_lft forever

 13.2、添加 netplan 配置文件 config.yaml 使能够 DHCP 获取 IPV4/IPV6 地址

cat <<EOF> /mnt/etc/netplan/config.yaml
network:
    version: 2
    renderer: networkd
    ethernets:
        eth0:
            dhcp4: true
            dhcp6: true
            match:
                macaddress: "de:1c:9c:06:60:68"
            set-name: eth0
EOF

 14、不使用 DHCP 获取到的 DNS 地址(可选)

rm -f /mnt/etc/systemd/system/sysinit.target.wants/systemd-resolved.service
rm -f /mnt/etc/systemd/system/dbus-org.freedesktop.resolve1.service
rm -f /mnt/etc/resolv.conf
cat <<EOF> /mnt/etc/resolv.conf
nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 2606:4700:4700::1111
nameserver 2606:4700:4700::1001
EOF

重启等1分钟启动 ssh 连接……

完成!尽情享受吧!
DD 官网 Ubuntu 22.10 云镜像到VPS

 

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
DD 官网 Ubuntu 22.10 云镜像到VPS
以 DHCP 获取 IPV4/IPV6 地址以及无后台 VNC 屏幕举例,支持 bios/efi 引导的小鸡,包括不限于:aws、az、gcp、龟壳、阿里云、腾讯云、等。 1、确定硬盘名称……
<<上一篇
下一篇>>