本文适用于甲骨文ARM架构的机器,开始前你需要具备一点Linux的基础知识。
使用下面的方法你可以重装到一个完美兼容甲骨文并且完全纯净的Debian10系统,彻底告别甲骨文官方系统内各种乱七八糟的监控,后台服务等。
此方法不需要VNC,实际上如果你懂原理,这个方法可以在任意VPS上实现Debian重装,这里就不多废话了,直接进入正题。
首先拿到root权限:
sudo -i
执行下面的命令查看你的机器有几块硬盘,以及/boot分区的编号,一般情况下也就一块硬盘,除非你还挂载了额外的卷:
lsblk
这里假设回显如下:
sda是第一块硬盘,/boot分区的编号为2。记住这些,后续会用到。
在/boot分区下创建一个名为debian的目录,然后在此目录内下载debian网络安装的initrd和内核:
mkdir /boot/debian && cd /boot/debian wget http://ftp.nl.debian.org/debian/dists/buster/main/installer-arm64/current/images/netboot/debian-installer/arm64/initrd.gz wget http://ftp.nl.debian.org/debian/dists/buster/main/installer-arm64/current/images/netboot/debian-installer/arm64/linux
解压initrd:
gunzip initrd.gz
新建一个预配置文件:
nano preseed.cfg
写入下面的配置:
# 配置语言 d-i debian-installer/locale string en_US # 配置键盘 d-i keyboard-configuration/xkb-keymap select us # 使用自动的方式配置网络(DHCP) d-i netcfg/choose_interface select auto # 配置hostname和domain d-i netcfg/get_hostname string unassigned-hostname d-i netcfg/get_domain string unassigned-domain d-i netcfg/hostname string imlala # 配置软件源 d-i mirror/country string manual d-i mirror/http/hostname string ftp.jp.debian.org d-i mirror/http/directory string /debian d-i mirror/http/proxy string # 开启root登录并设置root密码,关闭普通用户创建 d-i passwd/root-login boolean true d-i passwd/make-user boolean false d-i passwd/root-password password 123456 d-i passwd/root-password-again password 123456 # 设置时区为东八区 d-i clock-setup/utc boolean true d-i time/zone string Asia/Shanghai d-i clock-setup/ntp boolean false # 硬盘分区,注意/dev/sda这里的设备名,要改为你自己的设备名,一般虚拟机如VMware/VirtualBox都是这个设备名 d-i partman-auto/disk string /dev/sda d-i partman-auto/method string regular # 手动划分分区大小 d-i partman-auto/expert_recipe string \ boot-root :: \ 1 1 1 free \ $bios_boot{ } \ method{ biosgrub } \ . \ 256 2 256 fat32 \ $primary{ } \ $iflabel{ gpt } \ $reusemethod{ } \ method{ efi } format{ } \ mountpoint{ /boot/efi } \ . \ 512 3 512 ext4 \ $primary{ } \ $bootable{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ /boot } \ . \ 1024 5 1024 linux-swap \ $primary{ } \ method{ swap } format{ } \ . \ 1 4 -1 ext4 \ $primary{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ / } \ . \ # 因甲骨文的机器是efi引导,所以这里强制使用gpt分区表 d-i partman-efi/non_efi_system boolean true d-i partman-partitioning/choose_label string gpt d-i partman-partitioning/default_label string gpt # 如果硬盘内之前有lvm或是raid的分区,全部删除 d-i partman-md/device_remove_md boolean true d-i partman-lvm/device_remove_lvm boolean true # 下面的这些配置可以做到没有交互式的完成硬盘分区 d-i partman-partitioning/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true # 禁止在安装的时候弹出CD/DVD扫描提示 d-i apt-setup/non-free boolean true d-i apt-setup/contrib boolean true d-i apt-setup/cdrom/set-first boolean false d-i apt-setup/cdrom/set-next boolean false d-i apt-setup/cdrom/set-failed boolean false # 软件包选择 tasksel tasksel/first multiselect standard # 安装额外的软件包,不更新系统 d-i pkgsel/include string openssh-server d-i pkgsel/upgrade select none # 禁止在安装的时候弹出popularity popularity-contest popularity-contest/participate boolean false # grub安装 d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean true d-i grub-installer/bootdev string default # 安装完成之后不要弹出安装完成的界面,直接重启 d-i finish-install/reboot_in_progress note # 允许ssh服务使用root用户登录 d-i preseed/late_command string in-target sed -i 's/#PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
这里有几个需要注意的位置,下面的/dev/sda改为你之前用lsblk看到的硬盘名:
d-i partman-auto/disk string /dev/sda
设置你的root密码,默认这里是123456,务必修改为一个高强度的密码:
d-i passwd/root-password password 123456 d-i passwd/root-password-again password 123456
配置和你机器连通性最好的源:
d-i mirror/http/hostname string ftp.jp.debian.org
源列表:https://www.debian.org/mirror/list
完成之后把preseed.cfg内嵌到initrd里面去:
echo preseed.cfg | cpio -H newc -o -A -F initrd
重新压缩initrd:
gzip initrd
新建一个grub菜单:
nano /etc/grub.d/40_custom
写入如下配置:
menuentry 'debian 10 install' { insmod part_gpt insmod xfs set root='hd0,gpt2' linux /debian/linux initrd /debian/initrd.gz }
注意这里的hd0,gpt2,如果你的机器就一块硬盘那么hd0保持不变,后面的2改为你之前在lsblk看到的/boot分区编号。
更新grub配置,使之前的配置生效:
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
设置下一次重启的时候从我们新建的菜单来引导系统:
grub2-reboot "debian 10 install"
这样配置的好处是如果你的grub配置错误,不会让机器失联,你只需要在甲骨文的后台重启系统即可进入之前的系统。
重启机器,即可开始自动安装:
reboot
一般情况下,只要你的源配置的没问题,网络也是通畅的话,3分钟就装好了,下面是我装好的一台,简单验证一下: