LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2397|回复: 13

玩转 SLSE9 安装

[复制链接]
发表于 2004-9-5 15:29:35 | 显示全部楼层 |阅读模式
玩转 SLSE9 安装

原创: yongjian (i3dmaster@hotmail.com)
转载请注明出处.
不妥指出,敬请指正.
                                                                                                                                                                                                  
* 根据各人的Linux水平不同, 实现的办法和所用的tools也不一样. 这篇文章主要是介绍思路, 至于具体的实施, 不同的人有不同的方法. 不一定要按照本文的列子.只要理解了思路, 就可以用自己喜欢的办法执行.
                                                                                                                                                                                                  
SLES9的cd制作与其他的发行版有所不同, 和SuSE的pro也不一样,所以在用硬盘安装时会出现很多问题, 同时将所有iso拷贝到同一目录的方法也无法实行. 本人通过几天的反复安装研究, 终于找出了一些问题的解决办法. 通过阅读此文, 可以解决以下问题:
A. 解到同一目录无法安装.
B. 安装时认不出安装盘.
C. 制作SLES9的dvd.
D. 改变SLES9安装的mem设置. (缺省256MB)
                                                                                                                                                                                                  
A. 不能通过解到同一目录的方法安装.
    通过仔细查看几个iso文件的目录和文件结构, 发现了这样的几个问题:
    1. iso 1 的media目录是media.1, 而iso 2 的media目录也是media.1
    2. iso 1 只有不到300MB的大小, 而且大多是documentation.
    3. iso 1 的ARCHIVES.gz, ls-lR.gz, 和INDEX.gz文件和其他安装盘的内容不一, 大小不一.
    4. media文件对于安装盘的描述不同.
    以上的不同导致了当将几个iso解到同一目录下时,安装文件的错误覆盖和mismatch, 从而无法实现在同一目录安装(这种安装无须换盘操作.)
    解决办法:
    1. 在目标目录下再建一目录, CD1. (比如, 你原准备将所有iso内容拷到sles9目录, 那么现在先在sles9的目录下建立CD1目录.注意, 一定是大写的CD1)
    2. 反转拷贝顺序. 从第4张iso开始拷到sles9/CD1目录. 也就是将所有内容拷贝到CD1目录下.(第5,6张是source, 安装时无用)
    3. 直至拷完第一张iso的内容, 此时所有的cd描述文件都被第一张iso中的描述文件覆盖了. 我们开始修改.
    4. 进入CD1目录.
    5. 保留media.1 目录, 将其他的media.x都删除.
    6. 进入media.1 目录, 将media文件的内容改成如下:
        ----------------------
        SuSE Linux AG
        20040702202411
        1
        ----------------------
    5. 进入yast/core9/media.1目录, 将其中的media文件内容也改成上面的样子.
    6. 删除ARCHIVES.gz, INDEX.gz, 和ls-lR.gz等cd描述文件.
    7. 进入CD1目录的上一层. 如果你现在在CD1目录, 那么就'cd ..' (现在应在sles9目录下)
    8. 拷贝原iso1和iso2的ARCHIVES.gz文件到这个目录. (当然要拷贝成不同的名字,不然又覆盖了, 如ARCHIVES.gz和ARCHIVES_1.gz.
    9. 查看并save到一个新的文件. 如 zcat ARCHIVES.gz ARCHIVES_1.gz > arch.out
    10.找到第二个ARCHIVES文件的头描述内容, 将其删除,并整理. (查看arch.out文件, 开始的对于文件的描述就是.由于这是简单的将两个文件合并,所以会有两个描述头,将第二个删除即可.)
            比如, append完成后的情况是:            #####################################################################
            ---------------------------------------------------------------------
            ---------------------------------------------------------------------
            --------------- Here comes contents of all files: -------------------
            ----- *.rpm *.tar.gz *.tar.Z *.tgz *.taz *.tar.z *.tar *.deb --------
            ------------------ found in any subdirectory ------------------------
            ---------------------------------------------------------------------
            ---------------------------------------------------------------------
            ---------------------------------------------------------------------
            第一个ARCHIVES.gz文件的rpm文件安装描述....
            ...
            ...
            ---------------------------------------------------------------------
            ---------------------------------------------------------------------
            --------------- Here comes contents of all files: -------------------
            ----- *.rpm *.tar.gz *.tar.Z *.tgz *.taz *.tar.z *.tar *.deb --------
            ------------------ found in any subdirectory ------------------------
            ---------------------------------------------------------------------
            ---------------------------------------------------------------------
            ---------------------------------------------------------------------
            第二个ARCHIVES.gz文件的rpm文件安装描述....
            ...
            ...            #####################################################################
                                                                                                                                                                                                  
            将其改成:
                                                                                                                                                                                                              #####################################################################
            ---------------------------------------------------------------------
            ---------------------------------------------------------------------
            --------------- Here comes contents of all files: -------------------
            ----- *.rpm *.tar.gz *.tar.Z *.tgz *.taz *.tar.z *.tar *.deb --------
            ------------------ found in any subdirectory ------------------------
            ---------------------------------------------------------------------
            ---------------------------------------------------------------------
            ---------------------------------------------------------------------
            第一个ARCHIVES.gz文件的rpm文件安装描述....
            ...
            ...
            ---------------------------------------------------------------------
            ---------------------------------------------------------------------
            ---------------------------------------------------------------------
            ---------------------------------------------------------------------
            第二个ARCHIVES.gz文件的rpm文件安装描述....
            ...
            ...           
###############################################################
也就是说将第二个文件的头去掉, 再接成和第一个文件的rpm描述格式一样就行了.
    11. 制作好之后, 将这个文件中所有不是CD1的地方全部改成CD1. 因为原来的archive描述文件是有CD1, CD2, CD3, CD4, CD5的, 但由于现在都做在了CD1中, 所以要改变对文件位置的描述.
        比如, cat arch.out | sed 's/CD2/CD1/g' > arch1.out, cat arch.out | sed 's/CD3/CD1/g' > arch2.out ....
    12. 保留最后的一个文件, 将所有的其他都删除. 并执行 gzip -v9 archx.out, 然后再将gz文件改名为ARCHIVES.gz. 这就是正确的rpm安装描述文件. 此时新的ARCHIVES.gz应在sles9目录,同时在此目录的还有CD1目录.
    13. 制作新的ls-lR.gz. 在sles9目录, 执行 'ls -lR >/tmp/ls-lR'.生成文件后再执行'gzip -vi /tmp/ls-lR'生成ls-lR.gz.这就是新的ls-lR.gz文件.新的文件内容应如:#####################################################################
            total 24
            -r--r--r--    1 root     root        17862 Sep  1 21:31 ARCHIVES.gz
            drwxr-xr-x    9 root     root         4096 Sep  1 21:34 CD1/
                                                                                                                                                                                                  
            ./CD1:
            total 176
            -r--r--r--    1 root     root        17992 Sep  1 21:20 COPYING
            -r--r--r--    1 root     root        25733 Sep  1 21:20 COPYING.de
            -r--r--r--    1 root     root         1438 Sep  1 21:20 COPYRIGHT
            -r--r--r--    1 root     root         1606 Sep  1 21:20 COPYRIGHT.de
            -r--r--r--    1 root     root        24242 Jul  2 18:24 ChangeLog
            ....
            ....
#####################################################################
    14. 将新的文件move到sles9目录. 注意:不是CD1目录, 是sles9目录, 即CD1目录的上一层.
    15. 制作新的INDEX.gz. 在sles9目录, 执行 'find -type f |sort >/tmp/INDEX'.生成文件后再执行 'gzip -v9 /tmp/INDEX' 生成INDEX.gz文件.新的文件应如:
#####################################################################
            ./ARCHIVES.gz
            ./CD1/COPYING
            ./CD1/COPYING.de
            ./CD1/COPYRIGHT
            ./CD1/COPYRIGHT.de
            ./CD1/ChangeLog
            ./CD1/LICENSE.TXT
            ./CD1/README
            ./CD1/README.DOS
            ./CD1/SLES-LICENSE/cz/SLES-LICENSE.TXT
            ./CD1/SLES-LICENSE/cz/SLES-LICENSE.sxw
            ....
            ....
            ./ls-lR.gz
#####################################################################
    16. 到此, 所有新的描述文件都已经制作完成.两种选择: 你可以将这三个文件move到CD1目录, 或是将CD1目录下的所有东西move上来到sles9目录然后删除CD1目录!!! 总之最后这三个文件一定要和其他的文件在同一目录.
        我选择了上移CD1中的所有到sles9目录再删除CD1, 因为这样少一层目录,方便.:-)
    17. 形成的这个目录便是你制作DVD镜像文件,或是硬盘安装的地址.
                                                                                                                                                                                                  
B.安装时认不出安装盘. 这个问题好解决, 安装时有kernel module的选项, 如果你是放在vfat分区,应没问题, 如果是ext3分区, 要安装module. 同时, 对于在ftp, nfs等网络安装时出现的找不到网卡, 大多都可以从load module上解决.
                                                                                                                                                                                                  
C.制作DVD. 在A的问题上基本解决了DVD的目录和文件结构描述, 最终目录可以直接做DVD. 至于制作DVD的方法,我就不多废话了.
                                                                                                                                                                                                  
D.消除256MB的限制. SLES9有最小256MB的安装限制, 这使到有些机器较单薄的兄弟很郁闷. 其实, 问题就在initrd上. 这里给出解决方法.
    1. 将initrd拷贝出来.
    2. mv initrd initrd.gz  (因为这个initrd虽然没有.gz,但它还是一个压缩的gz文件)
    3. su -   
    4. mount -o loop initrd /mnt/initrd (你可以mount到其他地方.)
    5. cd /mnt/initrd
    6. 看到那个linuxrc.config文件了吗? 打开它, 你就会看见答案了.
    7. 修改完之后一定要保存阿!
    8. umount
    9. gzip -v9 initrd
    10. mv initrd.gz initrd
    11. 将这个新的initrd拷回你的安装目录并覆盖原来的那个.
    12. 新的mem限制将按照你的要求来了:-)
 楼主| 发表于 2004-9-5 15:34:33 | 显示全部楼层
DVD 也制作完成, 如果有人要的话, 我可以上传.
发表于 2004-9-5 15:44:34 | 显示全部楼层
多谢弟兄分享!

另:
本人通过grub加载内核,硬盘安装的,是将1-4cd.iso分别解压成:CD1,CD2,CD3,CD4子目录,换盘时只是修改URL里一个数字CD1,2,3,4就顺利装下去了。

对SLES9,个人觉得中文支持有进步,但X不稳定,居然运行yast时会自动退出,可能是我个人系统的问题??不知各位弟兄感觉如何?
也许是rc5版的原因?我还真怕NOVELL把SuSE给搞咂了。。。
唉。。
发表于 2004-9-5 15:53:20 | 显示全部楼层

本人使用安装盘ChangeLog最后更新如下,是不是正式版还请各位弟兄指点。

[PHP]------------------------------------------------------------------
--- Changelog.sles9-i386 ---- Fri Jul  2 20:24:17 CEST 2004 ------
------------------------------------------------------------------
------------------------------------------------------------------
------------------  2004-7-2  -  Jul 2 2004  -------------------
------------------------------------------------------------------

==============================
==== CD created:
==============================

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    SUSE CORE 9 (i586) RC5
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++ sles-admin_de:

  - Remove obsolete PreRequires

++++ sles-admin_en:

  - Remove obsolete PreReq
[/PHP]
发表于 2004-9-6 07:53:23 | 显示全部楼层
-bash :/usr/X11R6/bin/startx:Nosach file ordirectory
-bach:exec:/usr/X11R6/bin/stratx:can't execute:No such file or directory
-------------------------

我用grub加载内核装完SLES9
在控制台运行startx出现的错误

@_@..大家帮忙看看问题出现在哪里~
发表于 2004-9-6 08:59:44 | 显示全部楼层
你没有startx这个文件??
发表于 2004-9-6 10:07:00 | 显示全部楼层
有这个文件啊....

我用Star+Tab
会出来stratx这个文件....

在\sbin 文件夹下的
发表于 2004-9-6 10:24:42 | 显示全部楼层
root@Slackware:/windows/c# mount -o loop initrd.gz /mnt/cdrom/
mount: you must specify the filesystem type

Why? and how to do? thanx
 楼主| 发表于 2004-9-6 11:24:00 | 显示全部楼层
initrd文件不能是gzip的文件, 必须解开后再mount.
发表于 2004-10-1 19:07:13 | 显示全部楼层

安装成功!

slse9安装成功!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表