新系统免手动网络安装及Linux服务器串口控制台管理指南
1. 新系统免手动网络安装相关内容
在不同的Linux发行版上运行
apt-mirror
是可行的,你可以从源压缩包下载并安装它,之后需要自行创建目录结构和配置
cron
。
1.1 使用
apt-proxy
构建部分Debian镜像
-
问题
:使用
apt-mirror维护本地Debian镜像虽可行,但有时不需要完整的镜像,能否只缓存和共享本地系统实际使用的软件包? -
解决方案
:可以使用
apt-proxy。在至少有30GB可用存储空间的服务器上安装它:
# aptitude install apt-proxy
然后,配置
/etc/apt-proxy/apt-proxy-v2.conf
指向三个不同的Debian镜像:
address = 192.168.1.101
port = 9999
min_refresh_delay = 1s
debug = all:4 db:0
timeout = 15
cache_dir = /var/cache/apt-proxy
cleanup_freq = 1d
max_age = 120d
max_versions = 3
;; Backend servers
backends =
http://us.debian.org/debian
http://linux.csua.berkeley.edu/debian
http://mirrors.geeks.org/debian
http://debian.uchicago.edu/debian
接着,配置客户端PC指向你的
apt-proxy
服务器:
## /etc/apt/sources.list
# debian Etch (stable)
deb http://192.168.1.75/debian etch main contrib non-free
deb-src http://192.168.1.75/debian etch main contrib non-free
deb http://security.debian.org/ etch/updates main contrib non-free
deb-src http://security.debian.org/debian-security etch/updates main \
contrib non-free
在客户端运行
aptitude update
初始化服务器。如果服务器已有较大的软件包缓存,可以使用以下命令将其导入
apt-proxy
:
# apt-proxy-import /var/cache/apt/archives
此后,每次客户端计算机安装新软件时,
apt-proxy
会缓存它,并从缓存中提供额外的请求。你只需关注
apt-proxy
使用的磁盘空间。
-
讨论
:
apt-proxy复制Debian镜像结构,并在新版本可用时自动清除旧软件包。使用至少三个不同的Debian镜像作为后端服务器可实现故障转移。你可以访问镜像列表页面(http://www.debian.org/mirror/list)查找附近可用的镜像。
1.2 配置客户端PC使用本地Debian镜像
-
问题
:使用
apt-mirror或apt-proxy创建了本地Debian镜像后,如何配置本地Debian客户端使用它? -
解决方案
:编辑客户端计算机上的
/etc/apt/sources.list,指向服务器的地址或主机名:
## /etc/apt/sources.list
# debian Etch (stable)
deb http://192.168.1.75/debian etch main contrib non-free
deb-src http://192.168.1.75/debian etch main contrib non-free
deb http://security.debian.org/debian-security etch/updates main contrib non-free
deb-src http://security.debian.org/debian-security etch/updates main contrib non-free
在客户端运行
aptitude update
更新本地软件包列表。
-
讨论
:此示例中客户端直接从Debian.org获取安全更新,你也可以选择在服务器上缓存安全更新。Debian的安全更新从不镜像,仅可从
security.debian.org
获取。
1.3 设置Debian PXE网络引导服务器
- 问题 :想要一个Debian引导服务器以进行无安装CD或USB闪存设备的网络安装,客户端已准备好,本地Debian镜像也已设置好,还需要做什么?
- 解决方案 :Debian镜像服务器需要启用PXE网络引导。需要安装以下软件包:
# aptitude install tftpd-hpa dhcp3-server
从你喜欢的Debian镜像下载
netboot/netboot.tar.gz
到
/var/lib/tftpboot
并解压:
# wget http://debian.uchicago.edu/debian/dists/etch/main/installer-\
i386/current/images/netboot/netboot.tar.gz
# tar zxvf netboot.tar.gz
编辑
/etc/default/tftpd-hpa
:
RUN_DAEMON="yes"
在
/etc/dhcp3/dhcpd.conf
中进行简单配置:
##dhcpd.conf
allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
range dynamic-bootp 192.168.1.175 192.168.1.240;
next-server 192.168.1.40;
filename "pxelinux.0";
}
启动新服务器:
# /etc/init.d/dhcp3-server start
# /etc/init.d/tftpd-hpa start
给支持PXE网络引导的客户端加电,片刻后应看到Debian安装菜单。
-
讨论
:如果运行的是
Dnsmasq
而不是
dhcpd
,只需在
dnsmasq.conf
中添加一行以启用网络引导:
dhcp-boot=pxelinux.0,cracker,192.168.1.40
然后重启
Dnsmasq
:
# /etc/init.d/dnsmasq restart
如果运行的不是Etch版本的Debian,需要使用该版本特定的
netboot.tar.gz
。
1.4 从本地Debian镜像安装新系统
- 问题 :本地Debian镜像已设置好,客户端也准备就绪,如何让它们使用本地镜像?
-
解决方案
:使用安装引导介质启动系统,完成常规的键盘、语言和网络配置屏幕。当到达“镜像国家”屏幕时,选择“手动输入信息”,输入服务器的主机名,然后在下一个屏幕输入存档目录
/debian/,按常规方式继续安装。
1.5 使用预种子文件自动化Debian安装
- 问题 :想要一种简单的方法来自动化新Debian PC的网络安装,并为不同角色创建自定义安装。
- 解决方案 :创建一个预种子(preseed)或预配置文件来回答安装程序的问题并选择软件包。首先,研究示例预种子文件(http://d-i.alioth.debian.org/manual/example-preseed.txt),然后通过以下命令从自己的Debian系统创建一个:
# debconf-get-selections --installer > preseed.txt
# debconf-get-selections >> file preseed.txt
使用
tasksel
命令选择软件包组,例如:
$ tasksel --list-tasks
u desktop Desktop environment
i web-server Web server
u print-server Print server
u dns-server DNS server
[...]
u
表示未安装,
i
表示已安装。显示单个软件包:
$ tasksel --task-packages desktop
twm
gimp-print
xresprobe
openoffice.org
[...]
在预种子文件中使用
tasksel
选择软件包组:
#tasksel tasksel/desktop multiselect kde-desktop, xfce-desktop
#tasksel tasksel/first multiselect standard, kde-desktop
使用
pkgsel
选择单个软件包:
d-i pkgsel/include string openvpn tftpd-hpa dnsmasq
自动化创建root登录并禁用普通用户账户的创建:
passwd passwd/root-password password $1$AiJg3$GHlS8/vqkSgBj9/1EKPUv0
passwd passwd/root-password-again password $1$AiJg3$GHlS8/vqkSgBj9/1EKPUv0
passwd passwd/make-user boolean false
使用
grub-md5-crypt
加密密码:
$ grub-md5-crypt
Password:
Retype password:
$1$AiJg3$GHlS8/vqkSgBj9/1EKPUv0
使用以下命令检查预种子文件的格式是否有效:
$ debconf-set-selections -c preseed.txt
对于PXE网络引导客户端,将预种子文件复制到
/var/lib/tftpboot
,然后编辑
/var/lib/tftpboot/pxelinux.cfg/default
中的自动引导部分指向该文件:
LABEL auto
kernel debian-installer/i386/linux
append auto=true priority=critical vga=normal \
preseed/url=http://host/path/to/preseed.cfg \
initrd=debian-installer/i386/initrd.gz --
也可以将预种子文件复制到USB闪存驱动器的顶级目录,然后输入引导命令:
linux preseed/file=/dev/sdb/preseed.cfg debconf/priority=critical
或者将预种子文件放在网络服务器上,对于CD和USB引导介质,输入URL:
linux preseed/url=http://servername/filename
- 讨论 :Debian的预种子文件不如Fedora的Kickstart简单,但它是创建自定义Debian自动安装的较简单方法之一。
2. Linux服务器串口控制台管理相关内容
在现代,虽然有各种先进的服务器交互方式,但串口控制台在网络管理员的工具包中仍有一席之地。它简单且成本低,无需安装驱动程序或扩展卡,是与系统进行底层交互的方式。
2.1 串口控制台的优势
- 当其他方式都失败时,可作为廉价的救援设备。
- 用于连接路由器和交换机。
- 排查无头系统故障时,无需连接键盘和显示器。
- 可捕获内核和日志消息,重启系统并获取引导菜单,编辑网络设置,停止/启动网络,重启或调整SSH,调整网卡设置。
2.2 物理连接方式
- 连接硬件控制调制解调器,通过拨号进行远程管理。
- 使用空调制解调器电缆连接到笔记本电脑或附近的工作站,实现直接连接的串口控制台。
2.3 准备服务器进行串口控制台管理
- 问题 :有一台普通的x86服务器,希望启用串口控制台管理并验证所需的硬件和软件是否齐全。
-
解决方案
:首先检查服务器的BIOS是否内置串口控制台支持。如果有,按照特定机器的说明进行设置;如果没有,需要以下条件:
- 连接键盘和显示器,直到串口连接测试并准备好。
- DB9串口连接器,如果主板没有内置,可以廉价购买PCI串口卡。
-
agetty或mgetty实用程序。 - 允许系统在未连接键盘的情况下启动的BIOS。
- 用于直接连接到另一台PC的空调制解调器电缆。
- 内置控制台支持的内核,而不是作为模块。
- 如果需要远程拨号管理,需要硬件控制调制解调器。
- 可引导的救援磁盘。
-
讨论
:串口有物理连接器(通常是PC上的公DB9连接器)和逻辑设备(
/dev/ttyS*)之分。可以使用setserial命令查看串口信息:
$ setserial -g /dev/ttyS[0123]
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1: No such device
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
$ setserial -a /dev/ttyS0
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
Baud_base: 115200, close_delay: 50, divisor: 0
closing_wait: 3000
Flags: spd_normal skip_test
常见的串口端口和中断对应关系如下表所示:
| 端口地址 | IRQ | COM编号 | /dev/ttyS编号 |
| ---- | ---- | ---- | ---- |
| 0x03f8 | 4 | COM1 | /dev/ttyS0 |
| 0x02f8 | 3 | COM2 | /dev/ttyS1 |
| 0x03e8 | 4 | COM3 | /dev/ttyS2 |
| 0x02e8 | 3 | COM4 | /dev/ttyS3 |
getty
程序用于管理串口连接的登录,
mingetty
和
fgetty
不支持串口,
mgetty
、
agetty
、
uugetty
和普通的
getty
可用于串口控制台管理。大多数PC BIOS支持在未连接键盘的情况下启动,如果不支持且BIOS升级无法解决,可能需要类似PC Weasel的设备。可以通过查看
/boot/config-*
文件确认内核是否支持控制台:
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
如果显示
CONFIG_SERIAL_8250=m
或未设置,则需要重新编译内核。相关配置项还包括:
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_NONSTANDARD=y
以下是新系统安装及服务器管理流程的mermaid流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B{选择操作类型}:::decision
B -->|新系统安装| C(构建Debian镜像):::process
B -->|服务器管理| D(准备串口控制台管理):::process
C --> E(配置客户端使用镜像):::process
E --> F(安装新系统):::process
D --> G(检查BIOS支持):::process
G -->|有支持| H(按说明设置):::process
G -->|无支持| I(准备所需条件):::process
I --> J(验证硬件和软件):::process
F --> K([结束]):::startend
J --> K
新系统免手动网络安装及Linux服务器串口控制台管理指南
3. 新系统安装及服务器管理要点总结
为了更清晰地梳理新系统安装和服务器管理的要点,下面通过表格形式进行总结:
| 操作类型 | 具体任务 | 关键步骤 | 注意事项 |
| ---- | ---- | ---- | ---- |
| 新系统安装 | 构建部分Debian镜像 | 1. 安装
apt-proxy
;2. 配置
/etc/apt-proxy/apt-proxy-v2.conf
;3. 配置客户端
/etc/apt/sources.list
;4. 运行
aptitude update
初始化服务器;5. 导入缓存(如有) | 使用至少三个不同的Debian镜像作为后端服务器实现故障转移 |
| 新系统安装 | 配置客户端使用本地Debian镜像 | 编辑客户端
/etc/apt/sources.list
指向服务器地址或主机名,运行
aptitude update
| 可选择在服务器缓存安全更新,Debian安全更新仅从
security.debian.org
获取 |
| 新系统安装 | 设置Debian PXE网络引导服务器 | 1. 安装
tftpd-hpa
和
dhcp3-server
;2. 下载并解压
netboot.tar.gz
;3. 编辑相关配置文件;4. 启动服务器 | 运行
Dnsmasq
时需添加特定配置行,不同Debian版本需使用对应
netboot.tar.gz
|
| 新系统安装 | 从本地Debian镜像安装新系统 | 使用安装引导介质启动,在“镜像国家”屏幕选择手动输入信息,输入服务器主机名和存档目录 | - |
| 新系统安装 | 使用预种子文件自动化Debian安装 | 1. 研究示例预种子文件;2. 从自己的Debian系统创建预种子文件;3. 使用
tasksel
和
pkgsel
选择软件包;4. 配置root登录和用户账户;5. 加密密码;6. 检查预种子文件格式;7. 复制预种子文件并配置引导 | Debian预种子文件不如Fedora的Kickstart简单 |
| 服务器管理 | 准备服务器进行串口控制台管理 | 1. 检查BIOS是否支持串口控制台;2. 准备所需硬件和软件 | 部分PC BIOS可能不支持无键盘启动,需确认内核支持控制台且为内置 |
4. 实际应用场景示例
4.1 小型企业网络新系统部署
假设一家小型企业需要部署一批新的Debian服务器,为了提高部署效率和确保软件包的一致性,可以采用上述的新系统安装方法。
- 首先,在一台服务器上使用
apt-proxy
构建部分Debian镜像,配置好后端服务器和客户端指向。
- 然后,使用预种子文件自动化Debian安装,根据不同服务器的角色(如Web服务器、文件服务器等)选择合适的软件包组。
- 最后,通过Debian PXE网络引导服务器,实现无安装介质的批量部署。
以下是部署流程的mermaid流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A([开始]):::startend --> B(构建部分Debian镜像):::process
B --> C(创建预种子文件):::process
C --> D(设置PXE网络引导服务器):::process
D --> E(批量部署新系统):::process
E --> F([结束]):::startend
4.2 服务器故障排查与维护
当服务器出现故障,其他远程连接方式都无法使用时,串口控制台就可以发挥重要作用。
- 对于普通的x86服务器,按照准备服务器进行串口控制台管理的步骤,确保串口控制台可用。
- 使用串口控制台连接到服务器,捕获内核和日志消息,排查故障原因。
- 可以通过串口控制台重启系统、编辑网络设置、调整SSH配置等。
5. 常见问题及解决方法
在新系统安装和服务器管理过程中,可能会遇到一些常见问题,下面进行列举并给出解决方法:
-
问题1:
apt-proxy
缓存空间不足
-
原因
:软件包缓存不断增加,导致磁盘空间耗尽。
-
解决方法
:定期清理
/var/cache/apt-proxy
目录中的旧软件包,或者增加磁盘空间。
-
问题2:PXE网络引导无法启动
-
原因
:可能是
tftpd-hpa
或
dhcp3-server
配置错误,或者
netboot.tar.gz
文件损坏。
-
解决方法
:检查相关配置文件,确保
RUN_DAEMON="yes"
,
dhcpd.conf
配置正确;重新下载并解压
netboot.tar.gz
文件。
-
问题3:串口控制台无法连接
-
原因
:可能是硬件连接问题、BIOS设置不正确或内核不支持。
-
解决方法
:检查串口电缆连接是否正常;确认BIOS允许系统在未连接键盘的情况下启动;查看
/boot/config-*
文件,确保内核支持控制台且为内置,必要时重新编译内核。
6. 总结
通过本文介绍的新系统免手动网络安装方法和Linux服务器串口控制台管理技巧,可以提高系统部署效率,增强服务器的可维护性和故障应对能力。在实际应用中,根据具体需求选择合适的方法,并注意相关的注意事项和常见问题的解决方法,能够更好地管理和维护网络系统。无论是小型企业的新系统部署,还是服务器的日常维护和故障排查,这些技术都能发挥重要作用。
希望本文的内容对大家在新系统安装和服务器管理方面有所帮助,让大家能够更加轻松地应对各种网络管理任务。
超级会员免费看
730

被折叠的 条评论
为什么被折叠?



