#language zh #pragma section-numbers 2 = 有关 CentOS-7 的问题 = <> == 我过往利用 boot.iso 映像进行网络安装。它去了哪里? == 由 EL6 起,上游决定把 boot.iso 移出 images/ 这个目录并利用另一个独立的媒体来发行它。基于该映像颇大,我们亦决定同样做。网络安装磁盘的映像名为 netinstall.iso,它只收藏在 isos/ 这个目录,当中还有其它的安装映像。 == 为何我的乙太网络不能运作,除非我登录并刻意启用它? == ……还有,为什么界面名称完全「逆转」以往惯例?这样做违反了 Unix「不更改预期结果」的原则。 上游的缺省组态已改用 !NetworkManager,而且界面缺省是不会被启用的(针对乙太网来说是较难理解)。权宜之计就是在安装过程中,等待安装程序出现询问语系/键盘/存储设备/软件安装的主页,然后启用你的网络卡。这个昼面内有一粒「网络及主机名称」的按钮。点击这个按钮,选择你要编辑的乙太网络连接,然后点击右上角的「停用」按钮。假如你选用 DHCP,你便会看见该连接取得一个网络地址。如果你需要以手动方式更改网络设置,请按「设置」按钮,输入所需数值并存储他们。你大概要停用然后再启用刚设置的网络卡才能套用这些改动。现在按「完成」便大功告成。你也可以在安装完成后通过 !NetworkManager(「系统;选项;网络连接」或右按通知本地内的网络小图示,选择「编辑连接……」)来作出这些改动。 假如你不采用 !NetworkManager,你可以通过编辑网络界面的概述文件(正常为 {{{/etc/sysconfig/network-scripts/ifcfg-eth0}}})并把 {{{ONBOOT=no}}} 改为 {{{ONBOOT=yes}}} 来达到相同効果。某些采用 DHCP 的安装还需要额外一行:{{{BOOTPROTO=dhcp}}};固定 IP 的安装当然需要:{{{BOOTPROTO=static}}} 假设界面是 {{{eth0}}},你可以(通过 root 的身份)这样编辑 {{{ONBOOT}}}: {{{ # cd /etc/sysconfig/network-scripts/ # sed -i -e 's@^ONBOOT="no@ONBOOT="yes@' ifcfg-eth0 }}} 关于「更改预期结果」:上述例子采用「传统」的网络设备,'''eth0'''。其它设备名称亦有可能出现,例如:'''em1'''、'''p3p1''' 等。不论你喜欢与否,这个为界面命名的改动是 Linux 的未来趋势。它已包含在上游的「测试发行版本」作为[[http://fedoraproject.org/wiki/Features/ConsistentNetworkDeviceNaming|预览]]。此外请参阅:[[http://linux.dell.com/biosdevname/|Dell 的介绍]]及内部员工的[[http://domsch.com/blog/?tag=biosdevname|网志]]。 == 要是我想撤消至旧的命名呢? == 以下是所需的步骤: * 在 grub 加入 net.ifnames=0 and biosdevname=0 作为内核参数 * 在 /etc/sysconfig/network-scripts/ 内把你的网络卡配置文件换名为 ifcfg-ethX * 假若你拥有多个界面并希望控制每个设备的名称,不想由内核作主,你似乎有必要通过 /etc/udev/rules.d/60-net.rules 盖过 /usr/lib/udev/rules.d/60-net.rules。 == 但我只想令它运作及手动式编辑配置文件。 == 很多安装用不著 '''!NetworkManager''' 工具的复杂性,而采用人手编辑的配置文件。以下是一个 '''非 !NetworkManager''' 的 DHCP 界面设置样例:{{{ [root@example ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO=dhcp NM_CONTROLLED="no" PERSISTENT_DHCLIENT=1 ONBOOT="yes" TYPE=Ethernet DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=yes IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME="eth0" [root@none ~]# }}} 以及一个「静态配置」配置文件的样例:{{{ [username@hostname]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" HWADDR="00:21:70:10:7E:CD" NM_CONTROLLED="no" ONBOOT="yes" BOOTPROTO=static # BOOTPROTO=dhcp IPADDR=10.16.1.106 NETMASK=255.255.255.0 # # the GATEWAY is sometimes in: /etc/sysconfig/network GATEWAY=10.16.1.1 }}} 此外,通用项目如主机名称及 DNS 服务器可选择性地放置在:{{{ [username@hostname]$ cat /etc/sysconfig/network HOSTNAME=acme.example.com DNS1=10.16.1.112 DNS2=8.8.8.8 ## DNS2=76.242.0.28 SEARCH=example.com }}} 这些信息是「选择性」的,因为一台 DHCP 服务器能派发这些数值。当一个良好部署的 DNS 环境存在时,'''initscripts''' 能够从 PTR 等记录找出主机名称等信息,但有些用户需要以人手管理这些细节。要取得更多信息,你可用以下方式列出整全的 initscripts 文档:{{{ rpm -qd initscripts }}} 不论该环境是否安装了 '''man''' 阅读说明手册的组件及所依赖的组件。 ### == 为何 CentOS-7 拒绝在我的 i686 处理器上安装? == ### 上游决定了不支持非 PAE 的处理器。如果你的处理器不支持 PAE,执行安装程序时你将会看见以下错误: ### * This kernel requires the following features present on the CPU pae cx8 ### 你仍可安装 CentOS-5 但将会不能运行 CentOS-7。 == 我如何停用 IPv6? == 上游雇员 Daniel Walsh [[https://bugzilla.redhat.com/show_bug.cgi?id=641836|推荐]]不要停用 ipv6 模块,因为这样会导致 SELinux 及其它组件出现问题。你可改而在 /etc/sysctl.conf 加入: {{{ net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 }}} 要在运作中的系统停用它: {{{ echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6 }}} 或 {{{ sysctl -w net.ipv6.conf.all.disable_ipv6=1 sysctl -w net.ipv6.conf.default.disable_ipv6=1 }}} '''附加备注 #1''':要是你在停用 IPv6 的系统上转接 X 时遇到问题,请编辑 '''/etc/ssh/sshd_config''' 及作出以下一组改动: (1) 更改这一行 {{{ #AddressFamily any }}} 为 {{{ AddressFamily inet }}} (inet 指定 ipv4;inet6 指定 ipv6) 或者 (2) 删除这行行首的井号(#) {{{ #ListenAddress 0.0.0.0 }}} 然后重新引导 ssh。 '''附加备注 #2''':要是你在停用 IPv6 的系统上引导 postfix 时遇到问题,你可选择 (1) 编辑 /etc/postfix/main.cf 并备注掉 localhost 部份的设置及采用 ipv4 回路。 {{{ #inet_interfaces = localhost inet_interfaces = 127.0.0.1 }}} 或 (2) 从 /etc/hosts 取掉 ipv6 的 localhost。 '''附加备注 #3 ''':如要停用 RPCBIND ipv6(rpcbind、rpc.mountd、prc.statd),请在 /etc/netconfig 备注掉 udp6 及 tcp6 行: {{{ udp tpi_clts v inet udp - - tcp tpi_cots_ord v inet tcp - - #udp6 tpi_clts v inet6 udp - - #tcp6 tpi_cots_ord v inet6 tcp - - rawip tpi_raw - inet - - - local tpi_cots_ord - loopback - - - unix tpi_cots_ord - loopback - - - }}} == 我可以从哪里下载 32 位元版本? == 你可于 http://mirror.centos.org/altarch/7/isos/i386/ 下载 32 位元的 CentOS 7 发行版本。 == 你对 ifconfig/netstat 做了甚手脚? == ifconfig 及 netstat 工具程序在 CentOS 5 及 6 的应用手册内被置标为降级已接近十年,而 Redhat 决定在 CentOS 7 不会缺省安装 net-tools 组件。其中一个转换的原因就是 ifconfig 不会显示界面卡所拥有的全部 IP 位置 —— 请改用 ip 指令。取而代之的工具是 ss 和 ip。假如你真的、真的很需要 ifconfig 和 netstat,你可执行 yum install net-tools。 ~-Translation of revision 21-~