Skip to content
lotro@live.cn
  • 顺遂无虞 皆得所愿

pxe网络安装debian、Ubuntu、openEuler

凡叔 2024-03-21 1 90
☖

一、tftp服务搭建

服务器选用Debian12,安装tftpd-hpa服务,配置文件如下:

sudo apt install tftpd-hpa

user@DNS$ cat /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

二、配置uefi模式的pxe启动文件

选择合适的netboot程序,这里选用Debian的netboot

wget https://mirrors.ustc.edu.cn/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz

解压到tftp的根目录内,然后修改tftp目录下的配置文件,下面直接贴出各系统的自动安装配置

uefi模式添加默认本地硬盘启动,以下配置需手动添加到tftp目录下的debian-installer/amd64/grub/grub.cfg 中

set timeout=5
set default=0
menuentry 'Boot from next volume' {
        exit 1
}

添加Debian12网络启动,并添加了自动化安装脚本:

menuentry 'Install Debian' {
	linux    debian-installer/amd64/linux auto=true priority=critical vga=788 auto locale=zh_CN url=http://dns.a.v/preseed.cfg
        initrd   debian-installer/amd64/initrd.gz
}

openEuler的网络安装配置,同样添加了ks.cfg自动安装脚本:

menuentry 'openEuler 24.03 LTS SP2' --class openEuler --class gnu-linux --class gnu --class os {
        linuxefi openEuler/vmlinuz ip=dhcp inst.ks=http://dns.a.v/ks.cfg inst.repo=http://mirrors.tuna.tsinghua.edu.cn/openeuler/openEuler-24.03-LTS-SP2/OS/x86_64
        initrdefi openEuler/initrd.img
}
menuentry 'Kylin Server V10 SP3' --class red --class gnulinux --class gnu --class os {
    linux Kylin/vmlinuz ro inst.geoloc=0 console=ttyAMA0 console=tty0 rd.iscsi.waitnet=0 ip=dhcp inst.repo=http://dns.a.v/Kylin-V10-SP3 inst.ks=http://dns.a.v/ksKylin.cfg
    initrd Kylin/initrd.img
}
menuentry 'UOS Server v20 1070a' {
        linuxefi uos/vmlinuz ip=dhcp inst.ks=http://dns.a.v/ksuos.cfg
        initrdefi uos/initrd.img
}

Ubuntu的网络安装配置,并配置了自动安装脚本:

menuentry 'ubuntu server 26.04.1 lts' {
        linux   ubuntu/vmlinuz root=/dev/ram0 ramdisk_size=1500000 ip=dhcp iso-url=http://dns.a.v/ubuntu-26.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://dns.a.v/autoinstall ---
        initrd  ubuntu/initrd
}

三、添加传统bios模式的启动配置

以下这个参数添加入tftp目录的/home/tftp/menu.cfg

menu hshift 4
menu width 70

menu title GNU/Linux installer menu (BIOS mode)
include debian-installer/amd64/boot-screens/stdmenu.cfg

label Alpine
	menu label ^Alpine Linux
        linux alpine/vmlinuz-lts ip=dhcp modloop=http://dns.a.v/modloop-lts alpine_repo=http://mirrors.ustc.edu.cn/alpine/latest-stable/main
        initrd alpine/initramfs-lts

label Debian Server
	menu label ^Debian Server 
        linux    debian-installer/amd64/linux preseed/url=http://dns.a.v/preseed.cfg auto=true priority=critical vga=788 locale=zh_CN interface=auto hostname=DB2026 domain=
        initrd   debian-installer/amd64/initrd.gz

label Ubuntu Server
	menu label ^Ubuntu Server 26.04.1 lts
	kernel ubuntu/vmlinuz
	initrd ubuntu/initrd
#	append url=http://dns.a.v/ubuntu/ ip=dhcp root=/dev/ram0 ramdisk_size=2500000 iso-url=http://dns.a.v/ubuntu-24.04.4-live-server-amd64.iso autoinstall ds=nocloud-net;s=http://dns.a.v/autoinstall/ ---
	append iso-url=http://dns.a.v/ubuntu-26.04.1-live-server-amd64.iso ip=dhcp root=/dev/ram0 ramdisk_size=2500000 autoinstall ds=nocloud-net;s=http://dns.a.v/autoinstall/ ---

#label Kylin Server
#        menu label ^Kylin Server V10 SP3
#        linux Kylin/vmlinuz ro inst.geoloc=0 console=ttyAMA0 console=tty0 rd.iscsi.waitnet=0 ip=dhcp inst.repo=http://dns.a.v/Kylin-V10-SP3 inst.ks=http://dns.a.v/ksKylin.cfg
#        initrd Kylin/initrd.img

#label openEuler Server
#        menu label ^openEuler-24.03-LTS-SP2
#        linuxefi openEuler/vmlinuz ip=dhcp inst.ks=http://dns.a.v/ks.cfg inst.repo=http://mirrors.tuna.tsinghua.edu.cn/openeuler/openEuler-24.03-LTS-SP2/OS/x86_64
#        initrdefi openEuler/initrd.img

#label UOS Server
#        menu label UOS Server v20 1070a
#        linuxefi uos/vmlinuz ip=dhcp inst.ks=http://dns.a.v/ksuos.cfg
#        initrdefi uos/initrd.img

timeout 100

label local
	menu label ^Boot from local drive
	localboot 0
	menu default

四,相关快速启动附件

Ubuntu的user-data

dns:~# cat /home/share/autoinstall/user-data 
#cloud-config
autoinstall:
  apt:
    mirror-selection:
      primary:
      - uri: http://mirrors.ustc.edu.cn/ubuntu
  identity:
    hostname: UB2026
    password: $1$9I0jUZ36$TBye48EkhMYYDWkqrCMtt0
    realname: 为人民服务
    username: user
  keyboard:
    layout: cn
  locale: zh_CN.UTF-8
  packages:
  - neofetch
  - net-tools
#  - network-manager
  - fonts-unifont
#  - network-manager-gnome
  - build-essential
#  - gnome-shell
  - language-pack-zh-hans
#  - ubuntu-desktop-minimal
#  - language-pack-gnome-zh-hans
#  snaps:
#  - name: snap-store
#  - name: chromium
  ssh:
    allow-pw: true
    authorized-keys:
    - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxfUbjiwcpV1G5vt78dpXWbgyZNZ44X5SUckKqDzSNKZDxzFwDZiKm/yt2aVJ3c7uSz0Wz3Y7oEuwOb4gLoRLXJ3OKGSkLXtnRfTOuddV1h/daWDgYr0f4dSvy/5+8Jdz5e39Lv2T4Ggaeh7EuXBhZoRezk7LRaeXZT0IcykwayK36aD5HpUqpwoV2FsCv0EC2kdmrbS7uelpxqjgM2mRZivEoGAodIDwu3hFF94kPw9+BtVKk9cty+DS+68q1tCb6C4TlcBpA3MdpSCuUuzr4y7DOCcgTgwzBxp7zlApxj/3iyI4EOyzjef1Oh01YcP9+zQ//zQL3l8VYLnjoncyZQ== lotro@live.cn
    install-server: true
  interactive-sections:
   - storage
#  storage:
#    layout:
#      name: direct
#      match:
#        size: smallest
  user-data:
#    package_upgrade: true
    timezone: Asia/Shanghai
  late-commands:
#    - sed -i '$a\*.warning  @180.167.245.xxx\' /target/etc/rsyslog.conf
    - echo '*.warning @180.167.245.xxx' >> /target/etc/rsyslog.conf
  version: 1

其他ks.cfg

# Generated by Anaconda 36.16.5
# Generated by pykickstart v3.47
#version=DEVEL
# Use graphical install
graphical
# Reboot after installation
reboot

%post
sed -i '$a\*.notice  @180.167.245.xxx\' /etc/rsyslog.conf
cp /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.backup
sed -i s#repo.openeuler.org/#mirrors.zju.edu.cn/openeuler/#g /etc/yum.repos.d/openEuler.repo
%end

# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8

# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=link --hostname=openEuler --ipv6=auto --activate

# Use network installation
url --url="http://mirrors.zju.edu.cn/openeuler/openEuler-22.03-LTS-SP3/OS/x86_64/"

%packages
@standard
net-tools
telnet
vim-enhanced

%end

# SELinux configuration
selinux --disabled

# Generated using Blivet version 3.4.2
#ignoredisk --only-use=sda
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part swap --fstype="swap" --size=4096
part /boot/efi --fstype="efi" --size=1024
part / --fstype="ext4" --size=40960
part /home --fstype="ext4" --grow

# System timezone
timezone Asia/Shanghai --utc

#Root password
rootpw --lock
sshkey --username=user "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxfUbjiwcpV1G5vt78dpXWbgyZNZ44X5SUckKqDzSNKZDxzFwDZiKm/yt2aVJ3c7uSz0Wz3Y7oEuwOb4gLoRLXJ3OKGSkLXtnRfTOuddV1h/daWDgYr0f4dSvy/5+8Jdz5e39Lv2T4Ggaeh7EuXBhZoRezk7LRaeXZT0IcykwayK36aD5HpUqpwoV2FsCv0EC2kdmrbS7uelpxqjgM2mRZivEoGAodIDwu3hFF94kPw9+BtVKk9cty+DS+68q1tCb6C4TlcBpA3MdpSCuUuzr4y7DOCcgTgwzBxp7zlApxj/3iyI4EOyzjef1Oh01YcP9+zQ//zQL3l8VYLnjoncyZQ== lotro@live.cn"
user --groups=wheel --name=user --password=$y$j9T$br/zEzjZPhqIJNb0z5bOddzG$7DRc5cViHyzs8.rWb1w.6UdoTo.2ZZpGhutwhrUZ5k5 --iscrypted --gecos="user"

五、dhcp配置

如果是跨vlan的不同网段网络启动安装Linux需要做如下设置,以华为网络设备为例

uefi启动模式:

 dhcp server next-server 192.168.50.5
 dhcp server bootfile debian-installer/amd64/bootnetx64.efi

bios启动模式

 dhcp server next-server 192.168.50.5
 dhcp server bootfile pxelinux.0

六、更新操作

dns:~# cat /home/tftp/new.sh 
curl -L http://mirrors.nyist.edu.cn/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz -o /home/tftp/netboot.tar.gz
curl -L https://mirrors.ustc.edu.cn/alpine/latest-stable/releases/x86_64/netboot/initramfs-lts -o /home/tftp/alpine/initramfs-lts
curl -L https://mirrors.ustc.edu.cn/alpine/latest-stable/releases/x86_64/netboot/vmlinuz-lts -o /home/tftp/alpine/vmlinuz-lts
curl -L https://mirrors.ustc.edu.cn/alpine/latest-stable/releases/x86_64/netboot/modloop-lts -o /home/share/modloop-lts
chown nobody -R /home/tftp
tar zxf /home/tftp/netboot.tar.gz -C /home/tftp
cd /home/tftp/debian-installer/amd64/boot-screens/
ln -sfn ../../../menu.cfg ./
cd /home/tftp/debian-installer/amd64/grub/
ln -sfn ../../../grub.cfg ./
Debian

1 Comment

  1. ssh说道:
    2024-05-15 19:38

    ssh -o KexAlgorithms=+diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 user@your_server

    回复

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

© 2026 吉喜. Theme by Rabbit Lite.