以 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.2M1 loop /snap/lxd/24323
loop1 7:1 049.8M1 loop /snap/snapd/17950
loop2 7:2 063.3M1 loop /snap/core20/1822
vda 252:0 0 9.3G0 disk
├─vda1252:1 0 9.2G0 part /
├─vda14 252:14 0 4M0 part
└─vda15 252:15 0 106M0 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 SizeUsed Avail Use% Mounted on
tmpfs 97M884K 96M 1% /run
/dev/vda1 8.9G3.6G5.3G41% /
tmpfs 483M 0483M 0% /dev/shm
tmpfs 5.0M 05.0M 0% /run/lock
tmpfs 483M 0483M 0% /run/qemu
/dev/vda15 105M6.1M 99M 6% /boot/efi
tmpfs 97M4.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
热议
推荐楼 KDE 前天12:41
怎么不支持mbr了我龟壳就可以
KDE 发表于 2023-2-25 12:28
这是bios mbr方式,不支持efi gpt。
lemonSSS 发表于 1 分钟前
怎么不支持mbr了我龟壳就可以
你审题的吗?
2楼 米老鼠 前天04:31
我没看明白,这个救援为何会用到
3楼 hostloc10086 前天07:08
赞一个
4楼 linearn 前天07:32
DD前后怎么都是ubuntu呢?这样操作有啥意义?lz应该用DD到debian来举例
5楼 zxxx 前天07:46
支持大佬的技术贴
6楼 zxxx 前天08:28
这个能不能做成一键DD?
7楼 koyui 前天08:45
支持大佬的技术帖
8楼 lemonSSS 前天09:02
https://github.com/52fancy/NetInstallAlpine
这个大佬的安装脚本也可以当做内存救援系统用
9楼 KDE 前天12:28
https://github.com/52fancy/NetInstallAlpine
这个大佬的安装脚本也可以当做内存救援系统用...
这是bios mbr方式,不支持efi gpt。
10楼 KDE 前天12:31
这个能不能做成一键DD?
理论上是可行的
12楼 KDE 前天12:36
这是DD重装U22的方法吗?
任何Linux DD重装官网Ubuntu云镜像系统
13楼 lemonSSS 前天12:38
这是bios mbr方式,不支持efi gpt。
怎么不支持mbr了我龟壳就可以
14楼 KDE 前天12:41
怎么不支持mbr了我龟壳就可以
KDE 发表于 2023-2-25 12:28
这是bios mbr方式,不支持efi gpt。
lemonSSS 发表于 1 分钟前
怎么不支持mbr了我龟壳就可以
你审题的吗?
15楼 lemonSSS 前天12:47
KDE 发表于 2023-2-25 12:28
这是bios mbr方式,不支持efi gpt。
龟壳不就是efi gpt吗
上面我打错了
16楼 KDE 前天12:49
龟壳不就是efi gpt吗
上面我打错了
二刺猿果然反智
17楼 Stephen 7小时前
感谢mjj的保姆级教程
18楼 Paradox0s 5小时前
Ubuntu不换回来d-i就坚决不用。
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。