正文
CloudCone美国VPS,DD安装alpine操作系统
提示:此脚本为CloudCone专用,其他服务商的VPS请勿使用!
大概5分钟左右完毕,然后重启后大概1分钟左右就可以了。
本人未测试此脚本!操作过程会清空服务器数据,谨慎使用。
wget --no-check-certificate https://donghaiair.com.cn/cloudcone2alpine.sh && chmod +x cloudcone2alpine.sh && ./cloudcone2alpine.sh
脚本防删备份:
#!/bin/sh ## cloudcone专用版,ovz6、ovz7、kvm请使用对应版本 ## Telegram 群组: https://t.me/vpsqun logfile="/tmp/kvm-alpine.log" if [ "$1" = "--step-chroot" ]; then printf "" > "$logfile" printf " Installing packages..." >&2 if ! apk add --no-cache alpine-base linux-virt syslinux grub grub-bios e2fsprogs eudev openssh rng-tools rng-tools-openrc >>"$logfile" 2>>"$logfile"; then echo exit 1 fi echo " Done" >&2 printf " Configuring services..." >&2 #系统自启动服务,根据需要修改 # rc-update add --quiet hostname boot rc-update add --quiet networking boot # rc-update add --quiet urandom boot rc-update add --quiet crond default # rc-update add --quiet swap boot rc-update add --quiet udev sysinit rc-update add --quiet udev-trigger sysinit rc-update add --quiet sshd default # rc-update add --quiet rngd boot sed -i -r -e 's/^(tty[2-6]:)/#\1/' /etc/inittab echo " Done" >&2 printf " Installing bootloader..." >&2 #定义grub安装的磁盘以及root的mount分区,part变量下面用到 disk=$(fdisk -l|grep Disk|awk '{print $2}'|awk -F: '{print $1}') part=$(fdisk -l|grep Linux|sed -n '1p'|awk '{print $1}') if ! grub-install $disk >>"$logfile" 2>>"$logfile"; then echo exit 1 fi if ! grub-mkconfig -o /boot/grub/grub.cfg >>"$logfile" 2>>"$logfile"; then echo exit 1 fi sync echo " Done" >&2 rm -f "$0" ln -sf /boot/grub/ /boot/grub2 exit 0 fi SCRIPTPATH="$(realpath "$0")" #如果有更新,自行替换新版本文件 printf "Downloading Alpine" >&2 if ! wget -q -O /tmp/rootfs.tar.gz http://dl-cdn.alpinelinux.org/alpine/edge/releases/x86_64/alpine-minirootfs-3.12.0-x86_64.tar.gz; then echo " Failed!" >&2 exit 1 fi echo " Done" >&2 printf "Creating mount points..." >&2 umount -a >/dev/null 2>&1 mount -o rw,remount --make-rprivate $part / mkdir /tmp/tmpalpine mount none /tmp/tmpalpine -t tmpfs echo " Done" >&2 printf "Extracting Alpine..." >&2 tar xzf /tmp/rootfs.tar.gz -C /tmp/tmpalpine cp "$SCRIPTPATH" /tmp/tmpalpine/tmp/kvm-alpine.sh echo " Done" >&2 printf "Copying existing droplet configuration..." >&2 cp /etc/fstab /tmp/tmpalpine/etc cp /etc/hostname /tmp/tmpalpine/etc cp /etc/resolv.conf /tmp/tmpalpine/etc grep -v ^root: /tmp/tmpalpine/etc/shadow > /tmp/tmpalpine/etc/shadow.bak mv /tmp/tmpalpine/etc/shadow.bak /tmp/tmpalpine/etc/shadow grep ^root: /etc/shadow >> /tmp/tmpalpine/etc/shadow mkdir -p /tmp/tmpalpine/etc/ssh cp -r /etc/ssh/ssh_host_* /tmp/tmpalpine/etc/ssh cp -r /root/.ssh /tmp/tmpalpine/root apt install net-tools -y #设置固定ip,网卡eth0,根据实际需要修改,alpine识别eth0和centos一样,vultr下debian识别是ens3 #如果网卡不是ifconfig第一选项,可以指定ifconfig $dev dev=eth0 ip=$(ifconfig |grep inet| sed -n '1p'|awk '{print $2}') mask=$(ifconfig |grep inet| sed -n '1p'|awk '{print $4}') gw=$(ip route |grep default|awk '{print $3}') cat > /tmp/tmpalpine/etc/network/interfaces << EOF auto lo iface lo inet loopback auto $dev iface $dev inet static address $ip netmask $mask gateway $gw EOF echo " Done" >&2 printf "Changing to new root..." >&2 mkdir /tmp/tmpalpine/oldroot pivot_root /tmp/tmpalpine /tmp/tmpalpine/oldroot cd / || exit 1 echo " Done" >&2 printf "Rebuilding file systems..." >&2 echo PermitRootLogin yes >> /etc/ssh/sshd_config mount --move /oldroot/dev /dev mount --move /oldroot/proc /proc mount --move /oldroot/sys /sys mount --move /oldroot/run /run rm -rf /oldroot/* cp -r /bin /etc /home /lib/ /media /mnt/ /root /sbin /srv /tmp /usr /var /oldroot mkdir /oldroot/dev /oldroot/proc /oldroot/sys /oldroot/run mount -t proc proc /oldroot/proc mount -t sysfs sys /oldroot/sys mount -o bind /dev /oldroot/dev echo " Done" >&2 echo "chroot configuration..." >&2 if ! chroot /oldroot /bin/ash /tmp/kvm-alpine.sh --step-chroot; then echo "ERROR: could not install Alpine Linux. See /oldroot$logfile" >&2 exit 1 fi echo "Rebooting system. You should be able to reconnect shortly." >&2 reboot sleep 1 reboot