银河麒麟V10服务器安装与初始化实战指南:从分区到Docker部署

银河麒麟V10服务器安装与初始化实战指南:从分区到Docker部署

1. 项目概述:为什么需要一份详尽的银河麒麟V10安装手册?

如果你是一名系统管理员、运维工程师,或者正在为国产化项目进行技术选型,那么“银河麒麟高级服务器操作系统 V10”这个名字你一定不陌生。作为一款在关键领域广泛部署的国产服务器操作系统,它的稳定性和安全性是首要考量。然而,与一些主流开源发行版相比,其安装和初始配置过程存在一些特有的“坑点”和注意事项,网络上零散的教程往往语焉不详,或者版本过时,导致很多朋友在初次部署时举步维艰。

这份手册的目的,就是为你提供一份从零开始、手把手式的、基于最新实践经验的完整安装与初始化指南。它不仅仅是一份“下一步、下一步”的点击教程,更会深入解释每个关键步骤背后的逻辑:为什么分区要这样规划?安装后哪些服务默认需要调整?如何绕过那些令人头疼的“密钥环”提示和网络配置陷阱?我们将结合最新的网络热词中反映出的高频问题,比如“取消密钥环”、“禁用iptables”、“安装Docker”、“配置双网卡”等,将这些碎片化的需求整合成一条清晰、可复现的操作路径。无论你是在物理服务器、VMware虚拟机,还是其他虚拟化平台上进行部署,这份手册都能为你提供坚实的操作基础。

2. 安装前的核心准备工作

兵马未动,粮草先行。一次成功的系统安装,70%的功夫在安装之前。对于银河麒麟V10,充分的准备工作能避免你陷入“安装一半发现镜像不对”或“装完连不上网”的尴尬境地。

2.1 介质获取与校验:选对版本是关键

首先,你需要获取正确的安装镜像。银河麒麟V10针对不同的CPU架构(如x86_64、ARM64)和场景(服务器、桌面)提供了多个版本。对于服务器环境,务必确认是“高级服务器操作系统”版本。

官方与可信渠道:最稳妥的方式是通过官方或授权的渠道获取。一些热词如“麒麟v10 arm版本 下载地址”、“双源飞流下载站银河麒麟”也提示了用户寻找下载源的诉求。请务必从可信源下载,以确保镜像的完整性和安全性。

镜像校验:下载完成后,使用sha256summd5sum命令校验镜像文件的哈希值,并与官方提供的校验和进行比对。这是防止镜像在下载过程中损坏或被篡改的重要一步,对于生产环境至关重要。

sha256sum Kylin-Server-10-SP1-Release-Buildxx-yyyy.iso

2.2 环境规划:磁盘、网络与引导方式

磁盘与分区规划:这是安装过程中最具技术含量的决策之一。你需要根据服务器角色(数据库、Web应用、文件存储等)来规划分区方案。

  • 通用建议方案
    • /boot:1GB。存放内核和引导文件。
    • /boot/efi:200MB(仅UEFI引导需要)。EFI系统分区。
    • swap:物理内存的1-2倍,但通常不超过16GB。对于大内存(>64GB)服务器,8-16GB足矣。
    • /:剩余所有空间。采用LVM管理,为未来灵活性留出余地。
  • 高级/生产建议:对于数据库或日志密集型应用,强烈建议将/var甚至/home独立分区,避免日志或用户数据写满根分区导致系统崩溃。可以使用LVM创建逻辑卷,便于后期在线扩容。

网络规划:记录好服务器的IP地址、网关、DNS服务器信息。如果有多网卡(热词“如何设置双网卡内外路由”),需要提前规划好每张网卡的用途(管理网、业务网、存储网等)及IP地址分配。在安装界面配置静态IP,远比装完后再折腾要方便。

引导方式确认:确认服务器是传统的BIOS引导还是UEFI引导。这将影响你制作启动盘的方式和分区方案。现代服务器通常为UEFI。

2.3 制作启动盘与启动服务器

使用dd命令或Rufus(Windows)、Etcher(跨平台)等工具将ISO镜像写入U盘。以dd命令为例(操作前请万分确认of=参数是您的U盘设备,否则可能导致数据丢失):

sudo dd if=/path/to/Kylin-Server-10.iso of=/dev/sdX bs=4M status=progress oflag=sync

将制作好的U盘插入服务器,在开机时进入BIOS/UEFI设置,将U盘设为第一启动项,保存并重启。

3. 图形化安装流程逐步详解

服务器启动并从安装介质引导后,将进入银河麒麟V10的图形化安装界面。以下流程涵盖了所有关键选择节点。

3.1 语言、时区与安装源设置

首先选择安装过程中的语言(建议中文),随后进入“安装信息摘要”主界面。

  1. 时区和时间:点击“时区”,在地图上选择“亚洲/上海”或你的所在地,并确保“网络时间”开关已打开,以便使用NTP同步。
  2. 安装源:通常使用“自动检测到的安装介质”即可。如果你的环境需要配置网络安装源(如内部镜像仓库),可以在这里设置。

3.2 软件选择:最小化还是带GUI?

这是决定系统“体重”和“性格”的一步。对于纯粹的服务器,强烈建议选择“最小安装”。这个选项只安装最核心的系统包,没有图形界面,安全性更高、资源占用更少、受攻击面更小。这也是生产环境的最佳实践。

如果你确实需要图形界面进行管理,可以选择“带GUI的服务器”。但请注意,这会将大量图形库和桌面环境引入服务器,并非推荐做法。所有服务器管理操作,都应通过SSH命令行完成。

3.3 分区配置:手动规划的艺术

点击“安装目标位置”,进入磁盘分区界面。这是核心步骤。

  1. 选择磁盘:在“本地标准磁盘”下,选择你要安装系统的硬盘。
  2. 分区方案务必选择“自定义”或“手动分区”。自动分区方案通常不符合生产需求。
  3. 创建分区表:如果是新磁盘,需要点击“创建分区表”,选择gpt(UEFI)或msdos(BIOS)。
  4. 手动创建分区:点击“+”号,按2.2节的规划逐一创建分区。
    • 创建/boot分区:文件系统为ext4xfs
    • (UEFI)创建/boot/efi分区:文件系统为EFI系统分区,大小200MB。
    • 创建swap分区:文件系统为swap
    • 创建/分区:建议使用LVM。首先创建一个LVM物理卷,然后在这个PV上创建一个卷组(如vg_kylin),最后在卷组里创建/的逻辑卷,文件系统为xfs(性能通常优于ext4)。

注意:分区操作是破坏性的,请再次确认操作对象是正确的磁盘。对于已有数据的磁盘,务必提前备份。

3.4 网络与主机名配置

在“网络和主机名”中,你会看到检测到的网卡(如ens192)。选中它,点击右下角的“配置”。

  1. IPv4设置:将“方法”从“自动(DHCP)”改为“手动”。点击“添加”按钮,依次输入IP地址、子网掩码(或前缀,如24)、网关。在“DNS服务器”字段填入你的DNS地址(如114.114.114.114, 8.8.8.8)。
  2. 主机名:在顶部“主机名”字段,为你的服务器设置一个有意义的主机名,例如kylin-web-01
  3. 配置完成后,记得将网卡开关从“OFF”拨到“ON”。

3.5 根密码与用户创建

  1. 根密码:设置一个强壮的root密码。在生产环境中,此密码应极其复杂并安全保管。
  2. 创建用户:虽然可以直接用root,但最佳实践是创建一个日常使用的普通用户。点击“用户创建”,输入用户名(如admin)、全名,并设置密码。务必勾选“将此用户设为管理员”,这会将用户加入wheel组,允许使用sudo提权。这样,日常操作使用普通用户,需要特权时使用sudo,更安全。

完成所有配置后,检查“安装信息摘要”无误,点击“开始安装”。安装过程会自动进行,期间会要求你确认接受许可证协议。安装完成后,点击“重启系统”,拔掉安装U盘。

4. 安装后的关键初始化配置

系统首次重启并登录后,安装工作只完成了一半。以下初始化配置能让你的服务器更安全、更好用。

4.1 系统更新与基础工具安装

首先,更新系统到最新状态,并安装一些必备工具。

sudo dnf makecache sudo dnf update -y sudo dnf install -y vim wget net-tools tar curl lsof bash-completion

dnf是银河麒麟V10默认的包管理器,替代了老旧的yum

4.2 破解“密钥环”难题:取消密码提示

这是被高频搜索的热点问题(“银河麒麟系统取消密钥环”)。在登录图形界面或某些应用(如Chromium浏览器)时,会弹出一个“解锁登录密钥环”的提示,要求输入密码。

根本原因:这是GNOME桌面环境(或相关组件)的“密钥环”服务,用于安全存储Wi-Fi密码、浏览器密码等。但它在无图形登录或自动登录时,找不到解锁的密码。

解决方案(命令行优先,治本): 对于服务器,最彻底的方法是直接禁用或清空这个密钥环。

# 查看当前密钥环 ls ~/.local/share/keyrings/ # 方法1:设置一个空密码密钥环(推荐,兼容性好) cd ~/.local/share/keyrings/ rm -f *.keyring # 删除现有密钥环文件 # 下次触发时,系统会创建新的,你可以直接按回车设空密码。 # 方法2:通过seahorse(密码和密钥)工具修改(如有GUI) # 启动`seahorse`,在“登录”密钥环上右键,选择“更改密码”,输入旧密码,新密码留空。

对于纯命令行服务器,这个问题通常不会出现。如果通过VNC等连接桌面时遇到,可采用上述方法。

4.3 防火墙策略管理:理解与操控iptables

另一个热点是“银河麒麟 禁用iptables”。银河麒麟V10默认使用firewalld作为防火墙前端管理工具,其后端依然是iptables/nftables。直接粗暴地禁用iptables服务(systemctl stop iptables)可能无效或导致firewalld工作异常。

正确操作姿势

  1. 查看状态sudo systemctl status firewalld
  2. 管理服务
    • 停止并禁用:sudo systemctl stop firewalld && sudo systemctl disable firewalld仅用于测试或高度受控的内网环境,生产环境慎用
    • 开放端口(推荐):保持firewalld开启,只开放所需端口。
      sudo firewall-cmd --permanent --add-port=80/tcp # 开放HTTP sudo firewall-cmd --permanent --add-port=22/tcp # 开放SSH(通常默认已开) sudo firewall-cmd --permanent --add-service=http # 或使用服务名 sudo firewall-cmd --reload # 重载配置 sudo firewall-cmd --list-all # 查看所有规则
  3. 彻底禁用(如果需要):如果确实需要完全关闭防火墙(例如在嵌套的云环境或安全设备之后),正确的做法是停止并禁用firewalld,并确保iptables服务也未运行。
    sudo systemctl stop firewalld sudo systemctl disable firewalld sudo systemctl stop iptables # 如果存在此服务 sudo systemctl disable iptables sudo iptables -F # 清空所有链规则(临时)

4.4 配置SSH服务增强安全

默认SSH已安装。为了安全,建议进行加固:

sudo vim /etc/ssh/sshd_config

修改以下关键参数:

Port 2222 # 改为非22端口,减少扫描攻击 PermitRootLogin no # 禁止root直接登录 PasswordAuthentication yes # 如果使用密码登录则保持yes,若配置密钥对可设为no PubkeyAuthentication yes # 启用密钥登录 AllowUsers admin # 只允许特定用户登录(将admin替换为你的用户名)

修改后重启服务:sudo systemctl restart sshd务必在重启前,用另一个窗口测试新端口和用户登录是否正常,防止被锁在服务器外。

4.5 配置静态主机名与Hosts文件

确保主机名在重启后持久化,并配置本地解析。

# 查看当前主机名 hostnamectl # 静态设置主机名 sudo hostnamectl set-hostname kylin-web-01 # 编辑hosts文件,添加本机解析 sudo vim /etc/hosts # 添加一行:192.168.1.100 kylin-web-01

5. 高级应用场景实战配置

系统基础稳固后,就可以部署具体应用了。这里针对几个高频热词需求,给出实战配置。

5.1 离线部署Docker与Docker Compose

“麒麟v10 server中离线安装docker和 docker compose”是常见需求。在内网或安全环境中,需要离线安装。

步骤1:准备离线包在一台能联网的同版本麒麟V10系统上,使用dnf download命令下载所有依赖包。

mkdir -p /tmp/docker-offline cd /tmp/docker-offline sudo dnf download --resolve docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 或者使用 docker-compose 独立版本 sudo dnf download --resolve docker-compose

/tmp/docker-offline目录下的所有.rpm文件打包,拷贝到目标服务器。

步骤2:离线安装在目标服务器上,进入存放rpm包的目录,使用rpmdnf localinstall安装。

sudo dnf localinstall ./*.rpm # 或使用 rpm(不自动解决依赖,需按顺序) # sudo rpm -ivh *.rpm

步骤3:启动并验证

sudo systemctl start docker sudo systemctl enable docker sudo docker run hello-world # 验证安装成功

5.2 配置NFS网络文件共享

“麒麟v10在线安装nfs”需求,这里给出服务端和客户端配置。

NFS服务端配置

  1. 安装服务:sudo dnf install -y nfs-utils
  2. 创建共享目录:sudo mkdir -p /data/nfs_share
  3. 编辑配置文件:sudo vim /etc/exports
    /data/nfs_share 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
    (参数解释:rw读写,sync同步写入,no_root_squash信任客户端root,no_subtree_check提高性能)
  4. 启动服务并开放防火墙:
    sudo systemctl start nfs-server rpcbind sudo systemctl enable nfs-server rpcbind sudo firewall-cmd --permanent --add-service=nfs sudo firewall-cmd --permanent --add-service=mountd sudo firewall-cmd --permanent --add-service=rpc-bind sudo firewall-cmd --reload

NFS客户端配置

  1. 安装客户端工具:sudo dnf install -y nfs-utils
  2. 创建本地挂载点:sudo mkdir -p /mnt/nfs_client
  3. 手动挂载测试:sudo mount -t nfs 服务器IP:/data/nfs_share /mnt/nfs_client
  4. 开机自动挂载:编辑/etc/fstab,添加一行:
    服务器IP:/data/nfs_share /mnt/nfs_client nfs defaults,_netdev 0 0
    _netdev参数表示等网络就绪后再挂载,避免启动失败。

5.3 双网卡路由配置策略

对于“如何设置双网卡内外路由”的需求,典型场景是一张网卡(eth0)连接内网(如192.168.1.0/24),另一张(eth1)连接外网或另一个业务网(如10.0.0.0/24)。

目标是:访问内网IP走eth0,访问其他所有地址(默认路由)走eth1

  1. 查看网卡与IPip addr show
  2. 配置网卡:编辑网卡配置文件,位于/etc/sysconfig/network-scripts/,例如ifcfg-eth0ifcfg-eth1,正确配置IP、掩码、网关。关键点:只在作为默认出口的网卡(如eth1)上配置GATEWAY参数。
  3. 添加静态路由:编辑/etc/sysconfig/network-scripts/route-eth0(如果文件不存在则创建):
    192.168.1.0/24 dev eth0
    这表示192.168.1.0/24网段通过eth0访问。更复杂的路由可以在此文件添加。
  4. 重启网络sudo systemctl restart network
  5. 验证路由表ip route show。你应该看到类似如下输出:
    default via 10.0.0.1 dev eth1 proto static metric 100 10.0.0.0/24 dev eth1 proto kernel scope link src 10.0.0.100 metric 100 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 101
    这表明默认流量走eth1(网关10.0.0.1),而访问192.168.1.0/24的流量则直接通过eth0发出。

6. 故障排查与常见问题实录

即使按照手册操作,也可能会遇到问题。这里汇总了热词和实践中常见的“坑”。

6.1 安装引导阶段故障

问题:卡在 “synchronous exception at 0x000...” 或类似错误。

  • 可能原因:ISO镜像损坏、U盘制作有问题、服务器硬件兼容性问题(特别是较新的硬件)。
  • 排查
    1. 重新校验ISO的SHA256值。
    2. 换用质量好的U盘,使用dd命令重新制作,或尝试用Rufus以“DD模式”写入。
    3. 尝试在安装启动时,在引导菜单按e键编辑启动参数,在linuxefi行末尾添加nomodesetacpi=off等内核参数进行尝试。
    4. 如果是在VMware中安装(热词“vmware安装麒麟v10”),确保虚拟机配置的兼容性和虚拟化引擎设置正确,有时需要指定特定的客户机操作系统版本。

问题:开机黑屏提示 “error unknown filesystem”。

  • 可能原因:GRUB引导程序找不到其第二阶段文件或内核所在的分区。
  • 排查
    1. 这通常是/boot分区损坏或丢失,或者GRUB配置错误。
    2. 需要使用安装U盘进入“救援模式”,重新挂载根分区和/boot分区,然后重新安装和配置GRUB。
    3. 命令大致流程:chroot /mnt/sysimage进入系统根环境,然后grub2-install /dev/sda(你的磁盘),最后grub2-mkconfig -o /boot/grub2/grub.cfg

6.2 系统启动后故障

问题:无法将文件移动到回收站,提示权限不足。

  • 可能原因:回收站目录(通常位于~/.local/share/Trash)的权限设置不正确,或者文件系统挂载时使用了noexecnodev等参数。
  • 解决
    1. 检查回收站目录权限:ls -ld ~/.local/share/Trash。所属用户和组应该是你本人。
    2. 修复权限:sudo chown -R $USER:$USER ~/.local/share/Trash
    3. 检查文件系统挂载选项:mount | grep /home(假设你的家目录在/home下)。确保没有异常的挂载选项。

问题:如何进入维护模式(单用户模式)?

  • 操作:在GRUB启动菜单界面,选中要启动的内核,按e键进入编辑模式。找到以linux16linux开头的行,在行尾添加systemd.unit=rescue.target或者经典的single1。然后按Ctrl+X启动。这将进入一个不需要密码的root shell,用于修复系统(如修改root密码、修复文件系统)。

6.3 软件与开发环境问题

问题:编译软件时提示 “can‘t find -lgl” 等链接错误。

  • 原因:缺少开发库或链接库。-lgl表示链接名为libgl.so的OpenGL库。
  • 解决:安装对应的开发包。通常包名以-devel结尾。对于此错误,可以尝试:sudo dnf install mesa-libGL-devel。通用的方法是使用dnf provides查找哪个包提供了缺失的文件:sudo dnf provides */libgl.so*

问题:如何离线安装软件包(.rpm)?

  • 方法:使用dnf localinstall可以自动解决本地rpm包的依赖关系(如果依赖包也在当前目录)。sudo dnf localinstall package_name.rpm。如果依赖未满足,需要手动下载所有依赖的rpm包,然后一起安装。

问题:从GCC 9升级到GCC 13等高版本。

  • 注意:系统核心工具链的升级需格外谨慎,可能破坏其他软件的编译和运行环境。
  • 建议
    1. 优先使用dnf仓库中提供的可用版本。sudo dnf search gcc查看。
    2. 如果需要特定版本,考虑使用开发者工具集(DevToolset)或手动编译安装到/opt等非标准路径,并通过环境变量PATHLD_LIBRARY_PATH来切换使用,而不是替换系统默认的GCC。
    3. 手动编译安装高版本GCC是一个复杂过程,需要先安装MPFR、GMP、MPC等依赖库。除非必要,不建议在生产服务器上操作。

通过以上六个部分的详细拆解,从准备、安装、初始化、高级配置到故障排查,你应该能够独立完成银河麒麟高级服务器操作系统V10的部署,并让它稳定地运行起来。记住,服务器运维的核心是“知其然,并知其所以然”,理解每一步操作背后的意图,才能在遇到新问题时游刃有余。