以 DHCP 获取 IPV4/IPV6 地址以及无后台 VNC 屏幕举例,支持 bios/efi 引导的小鸡,包括不限于:aws、az、gcp、龟壳、阿里云、腾讯云、等。
警告!此操作硬盘数据会全部丢失!
警告!此操作硬盘数据会全部丢失!
警告!此操作硬盘数据会全部丢失!
以实际硬盘是 vda举例 可通过 lsblk查看实际硬盘
1、首先给小鸡 DD个 OpenWrt内存系统
echo 1 > /proc/sys/kernel/sysrq
echo u > /proc/sysrq-trigger
curl -Lo- "https://drive.google.com/uc?export=download&id=1cZZlTQaD8ydPAaQYFMSvsDe3HAmqj64Z" | zcat | dd of=/dev/vda
bs=1M
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
2、等待 1-3分钟重启进入 OpenWrt内存系统
ssh地址:你小鸡 IPV4 or IPV6地址
ssh账号:root
ssh密码:hostloc.com
3、DD Debian官方最新系统到小鸡硬盘
3.1、DD原始 raw镜像(2G 不利于网络传输 他不需要解压 CPU占用很小)
curl -Lo- "https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-genericcloud-amd64.raw" | dd of=/dev/vda bs=1M
3.2、DD压缩后的 raw镜像 tar.xz格式(不到200M 网络传输快 CPU占用相对原始 raw镜像较高)
curl -Lo- "https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-genericcloud-amd64.tar.xz" | tar -xJO | dd of=/dev/vda bs=1M
4、DD完之后修复硬盘、重读分区并扩容
4.1、修复硬盘
parted -l
4.1、获取分区表
partprobe
4.2、查看实际硬盘名称
lsblk
4.3、扩容 Debian 11系统分区到最大
parted -s /dev/vda resizepart 1 100%
4.4、扩容 Debian 11系统分区的文件系统到最大
e2fsck -f /dev/vda1
resize2fs /dev/vda1
5、修改 ssh密码、密钥,并允许 ssh以密钥方式登录
5.1、挂载 Debian系统分区到 /mnt目录 并查看硬盘扩容是否成功
mount /dev/vda1 /mnt
df -h
5.2、ssh密码生成
root@debian:~# openssl passwd -1 hostloc.com
$1$DiGZGr2m$Ht8S5tfK9oXxLwp6LjPUT0
5.3、修改刚才 Debian的 ssh密码
sed -i 's/root:\*/root:$1$DiGZGr2m$Ht8S5tfK9oXxLwp6LjPUT0/g' /mnt/etc/shadow
5.4、添加 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
5.5、 只允许 root以密钥方式登录 ssh
sed -i 's/#PermitRootLogin/PermitRootLogin/g' /mnt/etc/ssh/sshd_config
6、在开机脚本添加 ssh主机密钥,非常重要!(开机连上 ssh之后就可以删除了,首次需要而已。)
cat <<EOF> /mnt/etc/rc.local
#!/bin/bash
/usr/bin/ssh-keygen -A
systemctl restart ssh
EOF
6.1、给开机脚本添加执行权限 否则无法运行
chmod +x /mnt/etc/rc.local
7、 禁用 cloud-init这就是母鸡给小鸡下发配置的后门
touch /mnt/etc/cloud/cloud-init.disabled
8、重启进入新系统……
reboot
补充:
这次的 OpenWrt内存系统镜像 使用 Grub引导 vmlinuz内核 加载 initrd.gz 进入 OpenWrt内存系统
menuentry ‘OpenWrt Minimalist in-memory diskless Linux distribution based’ {
insmod part_msdos
insmod fat
insmod ext2
set root='(hd0,msdos1)’
linux /vmlinuz
initrd /initrd.gz
}