首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

开始在 S/390 系统上使用 Linux 的技巧(2)

开始在 S/390 系统上使用 Linux 的技巧(2)

3. 文件系统损坏有时在关闭系统的过程中可能会损坏文件系统,常见原因有:
  • 没有正确停止 Linux 映像
  • 没有正确卸载文件系统
  • 根文件系统全部用完
在这些情况中,在下一次引导系统时不可能再成功启动同样的映像。
问题:是否出现登录提示让我们看看两个文件系统损坏的场景:
  • 根文件系统(/dev/dasda1)本身损坏。在这种情况下,操作系统信息控制台上不显示登录提示。
  • 其他文件系统损坏,而不是根文件系统。在这种情况下,显示登录提示,并且仅装载正常的文件系统。
解决办法:无条件启用 fsck运行 fsck 就能够解决这两个场景中出现的问题。如下所示:
  • 对于第一个场景,可以在现有的 Linux 映像上在线启动根文件系统(使用命令 chccwdev -e <DASD address>),然后强制运行 fsck。这将强制检查文件系统,而不管它是否正常。例如:fsck -f /dev/dasdx1(其中 x 表示 fsck 针对其运行的、最新添加的 dasd 的设备盘符)。
  • 在第二个场景中,成功登录之后通过操作系统消息控制台在损坏的文件系统上运行命令 fsck。 当 fsck 在所有损坏的 DASD 上运行时,必须重启系统。下一次重新引导时,该映像将成功启动。
4. 设备越少启动越快cio_ignore 参数是一个内核参数,用于指定和分析附加到机器的所有可用设备。当开始引导 Linux 时,它将探测和分析所有可用的设备。
您可以使用 cio_ignore 来减少引导时需要探测和分析的设备。
问题:设备列表过多在 System z 上,映像启动比较慢,由于机器附加有许多的设备(比如 DASD 和网络设备等),所以必须加载多个不同的映像。不管哪个映像使用这些设备,系统都会在引导时探测和分析每个设备,这导致引导过程比较慢。
解决办法:注释掉一些设备在这种情况下,对于当前映像不使用的设备,可以在 zipl.conf 文件中定义这些设备的范围。这样,将忽略所有在 zipl.conf 文件中定义的设备,因此系统能够快速引导。为了实现这个目的,您需要运行:
  • cio_ignore=all:指定所有需要忽略的设备。
  • cio_ignore=all, !0.0.b100-0.0.b1ff, !0.0.a100:指定所有需要忽略的设备,但在 0.0.b100 到 0.0.b1ff 范围之内的设备和设备 0.0.a100 除外(定制能力非常强)。
5. 找到虚拟 LAN 的物理文件虚拟 LAN 是在一个或多个 LAN 上的一组设备。由于使用管理软件将这些 LAN 设置为可通信的,因此它们好像被附加到同一物理连接(事实上,它们分布在大量不同的 LAN 区段上)。
由于它们基于逻辑连接(而不是物理连接),所以 VLAN 是非常灵活的。VLAN 框架几乎与以太框架一样;惟一的区别是 VLAN 框架有一个额外的字段,其中包含一个用于识别 VLAN 的号码。这个号码称为 VLAN 标记
问题:在现实中标记位于何处?第一次在 System z 机器上安装 Linux(SUSE 或 RedHat)时,如果该 Linux 配置为使用 VLAN 而不支持访问非 VLAN 的 OSA 端口(针对 System z 的以太网卡),那么安装就不会成功。
如果是在 LPAR 上安装新的 Linux(SUSE),则必须通过网络进行安装。您必须将 LPAR(z 机器)准确地连接到提供安装文件的服务器。安装之前将要求您提供各种类型的信息,以设置网络。这些提示信息并不告诉您如何设置才能在使用 VLAN 配置的 LAN 区段上工作。如果机器(z 服务器)已经带有 VLAN 标记,它将仅查找具有特定 VLAN 标记信息的包。
解决办法:先安装再配置SUSE 和 RedHat 发行版都不支持在安装期间从网络接口设置 VLAN,因此惟一的解决办法就是先使用有效的非 VLAN 网络安装系统,然后将它配置为支持 VLAN。
在新的安装中,必须使用不带 VLAN 标记的硬件。安装期间,硬件不应配置为支持 VLAN。
额外收获:两个 SUSE bug最后,您需要注意两个与 SUSE 相关的 bug。
Bug 1:某些 SLES9 中出现的 VLAN 标记问题第一个 bug 出现在非常老的 GA 级别的内核 SLES9 上 — 带有 VLAN 标记的硬件不用担心这个 bug。该 bug 会导致内核失灵(系统将一个错误消息输出到控制台,并将内核内存的映像转储到磁盘供以后调试使用,然后要么等待手动重新引导系统,要么进行自动重新引导)。SLES9 SP4 内核不会出现这种情况。
Bug 2:SLES10 中出现 Awk 脚本错误在 SLES10 和 SLES10 SP2 中执行 Awk 脚本将导致以下错误:
清单 2. 在 SLES10 和 SLES10 SP2 中执行 Awk 脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
rapdistro7:~ # awk -f sample_test.awk get_build.messages
section 1
*** glibc detected *** awk: double free or corruption (fasttop):
0x0000000080055060 ***
======= Backtrace: =========

......

======= Memory map: ========

......

3ffff952000-3ffff967000 rw-p 3ffff952000 00:00 0
[stack]
Aborted
rapdistro7:~ #




这个脚本在 SLES9 表现正常。bugzilla 上已经报告这个 bug 导致的问题。另外,您可以使用 export LC_ALL = C 解决这个问题。SLES10/SP2 之后的内核版本修复了这个 bug。
返回列表