Better arch detect & arm64 cloud kernel

pull/20/head
Bohan Yang 5 years ago
parent e255be66ec
commit 98be029d34
  1. 13
      README.md
  2. 52
      debi.sh

@ -13,16 +13,10 @@ curl -fLO https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh && chm
``` ```
sudo ./debi.sh --cdn --network-console --ethx --bbr --user root --password <这里设置 root 密码> sudo ./debi.sh --cdn --network-console --ethx --bbr --user root --password <这里设置 root 密码>
``` ```
* ❗ **Oracle ARM 架构还需要添加 `--bpo-kernel` 参数,以安装新版 5.10 内核,否则系统可能无法启动**
**❗ ARM 机器安装失败临时解决办法:添加以下参数(安装 5.10 新版内核)**
```
--install 'ca-certificates libpam-systemd linux-image-5.10.0-0.bpo.7-arm64 flash-kernel'
```
* 以上命令选项开启了 BBR;设置了网卡名称形式是 `eth0` 而不是 `ens3` 这种。 * 以上命令选项开启了 BBR;设置了网卡名称形式是 `eth0` 而不是 `ens3` 这种。
* 如果是一般的 x86 架构 64 位机器(不是 ARM 架构的),还可以添加 `--cloud-kernel` 使用轻量版内核。
* 不加 `--password` 选项会提示输入密码。 * 不加 `--password` 选项会提示输入密码。
* (可选)添加 `--cloud-kernel` 参数,以安装空间占用较小的内核,但可能会导致 UEFI 启动的机器(如 Oracle、Azure 及 Hyper-V、Google Cloud 等)VNC 黑屏。BIOS 启动的普通 VPS 则没有此问题。
如果没有报错可以重启: 如果没有报错可以重启:
@ -124,7 +118,8 @@ Otherwise, you can run this command to revert all changes made by the script:
* `--efi` Create an *EFI system partition*. Default if `/sys/firmware/efi` exists * `--efi` Create an *EFI system partition*. Default if `/sys/firmware/efi` exists
* `--filesystem ext4` * `--filesystem ext4`
* `--kernel <string>` Choose an package for the kernel image * `--kernel <string>` Choose an package for the kernel image
* `--cloud-kernel` Choose `linux-image-cloud-amd64` as the kernel image * `--cloud-kernel` Choose `linux-image-cloud-amd64` or `...arm64` as the kernel image
* `--bpo-kernel` Choose the kernel image from Debian Backports (newer version from the next Debian release)
* `--no-install-recommends` * `--no-install-recommends`
* `--install 'ca-certificates libpam-systemd'` * `--install 'ca-certificates libpam-systemd'`
* `--safe-upgrade` **(Default)** `apt upgrade --with-new-pkgs`. [See](https://salsa.debian.org/installer-team/pkgsel/-/blob/master/debian/postinst) * `--safe-upgrade` **(Default)** `apt upgrade --with-new-pkgs`. [See](https://salsa.debian.org/installer-team/pkgsel/-/blob/master/debian/postinst)

@ -98,6 +98,8 @@ force_gpt=true
efi= efi=
filesystem=ext4 filesystem=ext4
kernel= kernel=
cloud_kernel=false
bpo_kernel=false
install_recommends=true install_recommends=true
install='ca-certificates libpam-systemd' install='ca-certificates libpam-systemd'
upgrade= upgrade=
@ -223,7 +225,10 @@ while [ $# -gt 0 ]; do
shift shift
;; ;;
--cloud-kernel) --cloud-kernel)
kernel=linux-image-cloud-amd64 cloud_kernel=true
;;
--bpo-kernel)
bpo_kernel=true
;; ;;
--no-install-recommends) --no-install-recommends)
install_recommends=false install_recommends=false
@ -280,6 +285,42 @@ while [ $# -gt 0 ]; do
shift shift
done done
if [ -z "$architecture" ]; then
architecture=$(dpkg --print-architecture 2> /dev/null) ||
architecture=$(uname -m)
case $architecture in
x86_64)
architecture=amd64
;;
aarch64)
architecture=arm64
;;
i386)
:
;;
*)
err 'No "--architecture" specified'
esac
fi
if [ -z "$kernel" ]; then
if [ "$cloud_kernel" = true ]; then
if [ "$architecture" != amd64 ] && [ "$architecture" != arm64 ]; then
err 'Cloud kernel is only available for amd64 (x86_64) and arm64 (aarch64) architectures'
fi
kernel="linux-image-cloud-$architecture"
else
kernel="linux-image-$architecture"
fi
if [ "$bpo_kernel" = true ]; then
if [ "$suite" = sid ] || [ "$suite" = unstable ]; then
err 'Backports kernel is not available for sid/unstable distribution'
fi
kernel="$kernel/$suite-backports"
fi
fi
if [ -n "$authorized_keys_url" ] && ! download "$authorized_keys_url" /dev/null; then if [ -n "$authorized_keys_url" ] && ! download "$authorized_keys_url" /dev/null; then
err "Failed to download SSH authorized public keys from \"$authorized_keys_url\"" err "Failed to download SSH authorized public keys from \"$authorized_keys_url\""
fi fi
@ -522,14 +563,14 @@ EOF
fi fi
$save_preseed << 'EOF' $save_preseed << EOF
# Base system installation # Base system installation
d-i base-installer/kernel/image string $kernel
EOF EOF
[ "$install_recommends" = false ] && echo "d-i base-installer/install-recommends boolean $install_recommends" | $save_preseed [ "$install_recommends" = false ] && echo "d-i base-installer/install-recommends boolean $install_recommends" | $save_preseed
[ -n "$kernel" ] && echo "d-i base-installer/kernel/image string $kernel" | $save_preseed
[ "$security_repository" = mirror ] && security_repository=$mirror_protocol://$mirror_host${mirror_directory%/*}/debian-security [ "$security_repository" = mirror ] && security_repository=$mirror_protocol://$mirror_host${mirror_directory%/*}/debian-security
@ -579,11 +620,6 @@ EOF
save_grub_cfg='cat' save_grub_cfg='cat'
if [ "$dry_run" = false ]; then if [ "$dry_run" = false ]; then
if [ -z "$architecture" ]; then
architecture=amd64
command_exists dpkg && architecture=$(dpkg --print-architecture)
fi
base_url="$mirror_protocol://$mirror_host$mirror_directory/dists/$suite/main/installer-$architecture/current/images/netboot/debian-installer/$architecture" base_url="$mirror_protocol://$mirror_host$mirror_directory/dists/$suite/main/installer-$architecture/current/images/netboot/debian-installer/$architecture"
firmware_url="https://cdimage.debian.org/cdimage/unofficial/non-free/firmware/$suite/current/firmware.cpio.gz" firmware_url="https://cdimage.debian.org/cdimage/unofficial/non-free/firmware/$suite/current/firmware.cpio.gz"

Loading…
Cancel
Save