更新于 2024-08-05
可使用hyper-v或者virtualbox安装纯净alpine系统。
virtualbox安装的时候可以直接使用vhd格式的硬盘,少一步镜像格式转换的步骤。
注意:本文制作的镜像,阿里云支持BIOS和UEFI方式启动,腾讯云目前只支持BIOS,还没找到UEFI不能启动的原因。
注意:阿里云安装系统时,无法覆盖镜像默认密码(本文cloud-init为官方版本,可能是非阿里云版本原因),可以设置秘钥,使用秘钥登录;腾讯云可自由选择登录方式。
#安装alpine
#安装时保留openssh,时区、键盘设置自由选择,源可以使用15(中科大源)。
setup-alpine
pw_auth="false"
while [ -n "$1" ]; do
case "$1" in
--pwauth)
shift
pw_auth="true" ;;
*)
break ;;
esac
done
#启用所有源,包括社区源
sed -i 's@#http://@http://@g' /etc/apk/repositories
#启用公钥登录
sed -i 's@#PermitRootLogin @PermitRootLogin @g' /etc/ssh/sshd_config && \
sed -i 's@PermitRootLogin none@PermitRootLogin prohibit-password@g' /etc/ssh/sshd_config && \
sed -i 's@PermitRootLogin yes@PermitRootLogin prohibit-password@g' /etc/ssh/sshd_config
if [ "$pw_auth" == "true" ]; then
#启用密码登录
sed -i 's@PermitRootLogin prohibit-password@PermitRootLogin yes@g' /etc/ssh/sshd_config
fi
service sshd restart
apk upgrade --no-cache --available && \
apk --no-cache --cache-max-age 30 add cloud-init util-linux chrony sudo tzdata openssh-server-pam && \
lsblk parted gettext e2fsprogs e2fsprogs-extra dosfstools
#启用root账户,启用密码登录(实际密码能不能登录,还是由openssh决定)
sed -i 's@disable_root: true@disable_root: false@g' /etc/cloud/cloud.cfg
sed -i 's@ssh_pwauth: false@ssh_pwauth: true@g' /etc/cloud/cloud.cfg
setup-cloud-init
#修改默认shell为/bin/bash
apk add qemu-guest-agent bash bash-completion
chsh -s /bin/bash
apk cache clean
chmod +x /home/alpine-init.sh
#1、不启用root密码登录
/home/alpine-init.sh
#2、启用密码登录,根据情况选择即可
#安全起见,建议不启用,重装系统时选择使用秘钥登录
#/home/alpine-init.sh --pwauth
大部分设置在第2步完成了,可选设置默认用户,我这里启用root用户。
vi /etc/cloud/cloud.cfg
拉到最后,default_user
节点就保留两个配置,用户名改成root,lock_passwd改成false。
default_user:
name: root
lock_passwd: false
保存并退出vi。
到这里镜像就制作完成了,可以做一些清理工作:rm -rf /root/.ash_history
,关机前清理下历史命令记录,然后直接poweroff
关机。
关机后不要再开机。
将镜像文件转为云商支持的格式,前往云商导入镜像即可(腾讯云需要使用“强制导入”
)。
hyper-x支持vhdx转为vhd,其他格式可以用qemu-img命令转换。