Linux 作为一款多任务、多用户的操作系统,吸引了不少爱好者。但很多人在装完 Linux 后,都遭遇过一个尴尬场景——满心期待地重启,结果面对的是黑底白字的命令行界面,桌面没了。这不,前段时间装 RHEL7 时,一个不留神选了默认的“Minimal Install”,于是又一次掉进了这个坑里。下面就把补装图形化桌面的完整过程捋一遍,希望能帮到同样踩坑的朋友。
一、RHEL7 系统安装——发现默认没有桌面
安装时没留神,直接用了默认的“Minimal Install”配置。装完后启动,只见控制台输出刷刷刷,最后就是一个命令行登录提示。如下图所示:


这种纯命令行的界面,用起来确实不太爽。登录进去之后,试着启动图形化界面:

果不其然,系统压根没装图形化组件。那就手动装吧。
二、安装图形化组件
先把光盘挂载上
将安装光盘(或 ISO 文件)挂载到 /mnt:
# mount /dev/sr0 /mnt \\ 把光盘挂载到“/mnt”上面 # df \\ 查看是否已经挂载

创建本地 yum 仓库
有了本地源,才能用 yum 安装软件组。先验证仓库,再找出图形化相关组件的包名:

# yum clean all \\ 清除 yum 仓库缓存 # yum makecache \\ 创建 yum 仓库缓存 # yum repolist \\ 列出可用 yum 仓库 # yum grouplist \\ 列出程序组

安装桌面组件包
看到列表里有个“Server with GUI”组,就是它了。直接安装:
# yum -y groupinstall "Server with GUI" \\ 安装图形化程序组

三、设置图形化默认启动
先手动启动桌面试试——startx
安装完成后,可以用 startx 命令临时启动 X Window 图形化桌面:
# startx \\ 启动 xwindow 进入图形化桌面


成功进入图形化界面后,可以做一些初始化设置。

设置默认运行级别为图形化
如果希望以后开机直接进图形界面,需要把默认的 systemd target 改成 graphical.target(对应之前 runlevel 5)。在 RHEL7 中,不再用 /etc/inittab 里的 runlevel,一切通过 systemd 管理:
[root@localhost Desktop]# systemctl get-default multi-user.target [root@localhost Desktop]# cat /etc/inittab # inittab is no longer used when using systemd. # # ADDING CONFIGURATION HERE WILL HA VE NO EFFECT ON YOUR SYSTEM. # # Ctrl-Alt-Delete is handled by /etc/systemd/system/ctrl-alt-del.target # # systemd uses 'targets' instead of runlevels. By default, there are two main targets: # # multi-user.target: analogous to runlevel 3 \\ 运行级别3:多用户界面 # graphical.target: analogous to runlevel 5 \\ 运行级别5:图形化界面 # # To set a default target, run: # # ln -sf /lib/systemd/system//etc/systemd/system/default.target # [root@localhost Desktop]# systemctl set-default graphical.target rm '/etc/systemd/system/default.target' ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target' [root@localhost Desktop]# systemctl get-default graphical.target

搞定。图形化桌面已经装好并且设为默认了。
最后补充几点:Linux 系统启动后没有进入图形化桌面,常见原因不外乎以下几种——
1. 安装时没有选择图形化组件(本文正好是这个情况)。
2. 默认运行级别不是图形化(上面已经教了如何修改)。
3. 系统安装后有过降低内存的操作,内存太低导致桌面起不来。解决办法:要么增加物理内存,要么扩大 swap 分区。
4. 重启后软件出现故障,导致桌面服务未能正常启动。
需要留意的是,RHEL 7 相比 6 在运行级别上做了碘伏性改变——不再有传统的 init 运行级别,只有 multi-user.target 和 graphical.target,相当于只保留了 3 和 5 两个级别,用 systemd 统一管理。理解这一点,很多配置上的困惑就能迎刃而解了。
