sh [Linode的Alpine Bootstrapping脚本]通过lish / rescue console安装高山linode的脚本 - 来自https://github.com/jco

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh [Linode的Alpine Bootstrapping脚本]通过lish / rescue console安装高山linode的脚本 - 来自https://github.com/jco相关的知识,希望对你有一定的参考价值。

#!/bin/sh

HOST=${HOST:-alpine}
INTERFACES="auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
  hostname $HOST
"

ALPINE_VER=${ALPINE_VER:-"latest-stable"}
APK_TOOLS_VER=${APK_TOOLS_VER:-"2.9.1-r0"}
ARCH=$(uname -m)
MIRROR="https://nl.alpinelinux.org/alpine"

BOOT_DEV="/dev/sda"
ROOT_DEV="/dev/sdb"
DATA_DEV="/dev/sdc"
SWAP_DEV="/dev/sdd"

mkdir /alpine
mount $ROOT_DEV /alpine
cd /alpine
mkdir boot
mount $BOOT_DEV /alpine/boot

curl -s $MIRROR/$ALPINE_VER/main/$ARCH/apk-tools-static-${APK_TOOLS_VER}.apk | tar xz
./sbin/apk.static --repository $MIRROR/$ALPINE_VER/main/ --update-cache --allow-untrusted --root /alpine --initdb add alpine-base alpine-mirrors

cat <<EOF >> /alpine/etc/fstab
$ROOT_DEV    /   ext4    defaults,noatime    0   0
$BOOT_DEV    /boot   ext4    defaults,noatime    0  1
$DATA_DEV    /data   ext4    defaults,noatime    0  0
$SWAP_DEV    swap    swap    defaults    0   0
EOF

cat <<EOF > /alpine/etc/inittab
# /etc/inittab
    
::sysinit:/sbin/openrc sysinit
::sysinit:/sbin/openrc boot
::wait:/sbin/openrc default
    
# Put a getty on the serial port
ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
    
# Stuff to do for the 3-finger salute
::ctrlaltdel:/sbin/reboot
    
# Stuff to do before rebooting
::shutdown:/sbin/openrc shutdown
EOF

mkdir /alpine/boot/grub
cat <<EOF > /alpine/boot/grub/grub.cfg
set root=(hd0)
set default="Alpine Linux"
set timeout=0

menuentry "Alpine Linux" {
    linux /vmlinuz-hardened root=/dev/sdb modules=sd-mod,usb-storage,ext4 console=ttyS0 quiet
    initrd /initramfs-hardened
}
EOF

mkdir /alpine/etc/mkinitfs
cat <<EOF > /alpine/etc/mkinitfs/mkinitfs.conf
features="ata ide scsi virtio base ext4"
EOF

cp /etc/resolv.conf /alpine/etc

echo ttyS0 >> /alpine/etc/securetty

mount --bind /proc /alpine/proc
mount --bind /dev /alpine/dev

chroot /alpine /bin/sh<<CHROOT
setup-apkrepos -f
apk update
setup-hostname -n $HOST
printf "$INTERFACES" | setup-interfaces -i
rc-update add networking boot
rc-update add urandom boot
rc-update add crond
apk add linux-grsec
CHROOT

以上是关于sh [Linode的Alpine Bootstrapping脚本]通过lish / rescue console安装高山linode的脚本 - 来自https://github.com/jco的主要内容,如果未能解决你的问题,请参考以下文章

sh Alpine的包裹经理

Docker Alpine /bin/sh apk 未找到

alpine安装telnet等工具

docker alpine中遇到 sh: ./go: not found

sh 在Alpine Linux 3.4上的PHP 7.1.7中打破了strftime()%P修饰符

如何在 Alpine Docker 容器中运行 Bash 脚本?