全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 3097|回复: 17

【长文警告!】【教程】DD 官网 Ubuntu 22.10 云镜像到小鸡

[复制链接]
发表于 2023-2-25 03:44:24 | 显示全部楼层 |阅读模式
本帖最后由 KDE 于 2023-3-3 00:22 编辑

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

1、确定硬盘名称(此处硬盘名称是 vda
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
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger

内存系统备用下载地址 https://file.io/w6oHXz9tr9bb

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

15、禁用cloud-init(可选)
touch /mnt/etc/cloud/cloud-init.disabled

重启等1分钟启动 ssh 连接 进入新系统……
reboot

完成!尽情享受吧!

图文无关 我 DD 的 RHEL 9

 楼主| 发表于 2023-2-25 12:41:50 | 显示全部楼层
lemonSSS 发表于 2023-2-25 12:38
怎么不支持mbr了我龟壳就可以

KDE 发表于 2023-2-25 12:28
这是bios mbr方式,不支持efi gpt。

lemonSSS 发表于 1 分钟前
怎么不支持mbr了我龟壳就可以

你审题的吗?

你发那个用grub引导的 在efi gpt不可用!
发表于 2023-2-25 04:31:22 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2023-2-25 07:32:45 来自手机 | 显示全部楼层
DD前后怎么都是ubuntu呢?这样操作有啥意义?lz应该用DD到debian来举例
发表于 2023-2-25 07:46:39 | 显示全部楼层
支持大佬的技术贴
发表于 2023-2-25 08:28:22 | 显示全部楼层
这个能不能做成一键DD?
发表于 2023-2-25 08:45:56 | 显示全部楼层
支持大佬的技术帖
发表于 2023-2-25 09:02:00 来自手机 | 显示全部楼层
https://github.com/52fancy/NetInstallAlpine
这个大佬的安装脚本也可以当做内存救援系统用
 楼主| 发表于 2023-2-25 12:28:00 | 显示全部楼层
lemonSSS 发表于 2023-2-25 09:02
https://github.com/52fancy/NetInstallAlpine
这个大佬的安装脚本也可以当做内存救援系统用  ...

这是bios mbr方式,不支持efi gpt。
 楼主| 发表于 2023-2-25 12:31:40 | 显示全部楼层
zxxx 发表于 2023-2-25 08:28
这个能不能做成一键DD?

理论上是可行的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-4 14:46 , Processed in 0.072424 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表