QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1635|回复: 1

[系列.原创]Linux不完全攻略_06

[复制链接]
发表于 2004-11-4 15:12:01 | 显示全部楼层 |阅读模式
回复贴到 http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=91508 。不要回复本贴。

[code:1]
6        实战准备
        版本:2004-10-26-01

    前面已经讲了一大堆,看完了吗?
    讲的什么在亲手一试之前总是虚的,打算开始了吗?不急,理论与实践往往是有些差别的,再做些准备工作。

        6.1        试试命令行下的文本编辑器

    vi能是终端命令行里功能最强的文本编辑器了,但目前需要用到的只是文本编辑功能,与GCC、make等工具的整合应用现在还不需要,所以操作难度不大,习惯就好。Linux发行版所带的一般不是vi,而是vim,vi的加强版,功能更强但操作比传统的vi更方便,但启动命令还是“vi”。

    命令行中,可以用“vi xxxxxxxxx”+回车启动vi并打开一个已经存在的文件。如果没有“xxxxxxxxx”这个文件,保存时会自动创建这个文件。直接输入“vi”回车,就是只启动文本编辑器。

    刚启动的vi处于命令状态。命令状态下,vi把所有的用户输入都当作命令。vi最常用的内部命令有:

    “:q”退出编辑器。
    “:!q”忽略所有改动强行退出。

    “:i”转入编辑状态。
    “:w”保存文件。
    “:wq”保存后退出。
    “:w xxxxxxxxx”把内容保存进文件“xxxxxxxxx”。
    “:!w xxxxxxxxx”把内容保存进文件“xxxxxxxxx”,替换掉其原来的内容。

    “/xxx”寻找下文中的字符串“xxx”。
    “?xxx”寻找上文中的字符串“xxx”。
    “:nn”直接跳转到第nn行。
    “dd”删除光标所在的行。

    编辑状态下,连按两次或更多次“Esc”键,能返回命令状态,如果忘了当前状态,多按几次“Esc”键,即可。传统的vi里,移动光标也得在命令状态下,上下左右分别对应“J”“K”“H”“L”键。vim中也可以这样,但是使用4个箭头键还是舒服多了,而且不管在哪个状态都能使用。
   
        6.2        初步检查一下GCC

    GCC,GNU C Compiler,开放源代码的C语言便宜系统,许多软件的安装和重新建造Linux内核都要靠它。
    试着用vi把下面5行文字添到一个文本文件里:
#include<stdio.h>
main()
{
        printf("XXX\n");
}
    把文件保存为“aaa.c”。

    在终端命令行里,切换到“aaa.c”所在的目录,执行“gcc aaa.c -o bbb”,看看目录里是否多出一个叫“bbb”的可执行文件?

    如果这个文件存在,再执行“./bbb”,命令行显示出“XXX”即可。否则不是文件内容错了就是GCC有毛病。

    如果GCC一切正常,就可以进行下一步了。

        6.3        熟悉一下Linux启动引导器

    下一步将改动一些分区。前面已经做了那么多工作,如果由此造成Linux无法引导,你不会希望把Linux重新装一遍吧?

    如前所述,我不熟悉GRUB,如果你一定要用GRUB,网上资料也不少,请自己去查。红旗2.0、3.0和RedHat7.3都是用的LILO,所以这次装好系统不久我就把引导头换成了LILO。功能也许没GRUB强大,但是已经够用了。

    请去下载最新版本的LILO。要RPM格式的,安装方便。我用的是lilo-0.21.5-1,有可以用箭头键操作的菜单。

    安装LILO。编写一个配置文件“/etc/lilo.conf”,下面的50行内容可以作为参考,其中带“#”的行为我添加的注释:
prompt
timeout=40
#在启动默认的选项前,或者有人按任何按键前,菜单停留4秒
default=0
#默认启动标签为0的选项
boot=/dev/hda9
#启动引导器安装在第一IDE接口主盘的9号分区
map=/boot/map
install=/boot/boot.b
linear

other=/dev/hda
#一个非Linux启动项,转回主引导区
        optional
        label=MBR
        #该项标签为“MBR”

image=/boot/vmlinuz-2.4.20-8
#一个Linux启动项,内核用“/boot/vmlinuz-2.4.20-8”
        label=RFL40
        #该项标签为“RFL40”
        initrd=/boot/initrd-2.4.20-8.img
        #启动初始化步骤用“initrd=/boot/initrd-2.4.20-8.img”
        read-only
        root=/dev/hda9
        #启动后把“/dev/hda9”挂在根目录下
#这个选项将引导[红旗Linux桌面4.0Bate版]以“/etc/inittab”中默认的运行级别启动

image=/boot/vmlinuz-2.2.16-1
        label=SYS_hda5
        initrd=/boot/initrd-2.2.16-1.img
        read-only
        root=/dev/hda5
#我装了3个Linux,这个选项将引导位于第5分区的[红旗Linux2.0桌面版]

image=/boot/vmlinuz-2.4.20-8
        label=SYS_hda7
        initrd=/boot/initrd-2.4.20-8.img
        read-only
        root=/dev/hda7
#这个选项将引导位于第7分区的[红旗Linux桌面4.0Bate版]。

image=/boot/vmlinuz-2.4.20-8
        label=0
        initrd=/boot/initrd-2.4.20-8.img
        read-only
        root=/dev/hda9
        append="0"
#这个选项将引导[红旗Linux桌面4.0Bate版]运行级别0启动,外人来开我的机器,4秒钟没动,计算机将自动关闭

    注意,把末尾的空行加进去不会出问题,不加就不一定了。
    我没把启动引导器安装在主引导区,因为我在主引导区已经有一个能到达第9分区的引导器了,而且我在第9分区的“boot”目录里也确实存放了其他Linux的内核与启动初始化步骤。配置文件不要照搬,要依照你的实际情况创建。搞定后执行“lilo”,引导器即安装完毕。

    如果你在MBR的引导器不认识Linux分区,比如ntldr,请用前面的方法重新制作一份Linux启动扇区的镜象,让那个引导器能引导Linux。

    下面做分区调整后如果Linux不能从硬盘引导,就请用软盘或者其他办法启动Linux,重建引导,重建方法以LILO为准。
   
        6.4        分区规划

    “/usr”所挂的分区到目前为止应该还有1G左右的空闲。首先明确,你的系统是否要安装大量软件?如果你只是尝尝新鲜,就到此打住吧。

    前面说过,杂七杂八的东东都扔在“/opt”里,最好给“/opt”一些分区。

    我把“/opt”下的东西分成5类:
    系统和各种资料要备份,于是有了“backup”;
    不想把所有用户资料都塞在“/”分区,就在这里新建了目录“home”;
    有自己安装的程序,就新建了目录“prog”;
    有flash、mp3之类的公共资源,就新建了目录“store”;
    DOS/Window$分区经常访问,所以不再放在临时挂载点“/mnt”,统统放到“zzz”里。

    前4个目录,可以每个目录都给一个分区,但是我只能再腾出3个分区,我自己的做法是“backup”下一个分区,“home”下一个分区,“prog”下一个分区,“store”实际建在“prog”里,然后链接到“/opt”中的。这个也以你的实际情况为准。不过因为KDE对链接处理的某些问题,最好在“/opt/prog”下有一个分区。

    个人主目录下往往保存有桌面环境的种种设置,而不同Linux发行版的设置有不尽相同,所以我在“/opt/home”下面以相同的名字和权限创建了一些目录,分别链接到个用户主目录里,命名为“123”。除了不在里面安装软件外,各类杂七杂八的东西有时也扔在这个“123”里,实际上都丢进了“/opt/home”下的某个目录里。

    我在“prog”目录下还建有几个子目录:
    “/opt/prog/c”。“c”,constant,固定的,固化的。那些装完后老死都不能挪窝的,或者牵牵挂挂太多导致挪窝很麻烦的软件装在这里,比如曾经用过的“JBuilder8”。软件新装一个软件的时候,我不知道安装完成后如果我把这个软件移动到其他位置它是否还能正常工作,所以新软件一般也装到这里。
    “/opt/prog/l”。“l”,linkable,能到处链接的。“/opt/prog/c”里的软件装好后我会试着把这个软件连它的安装目录整个移动到其他地方,并给安装目录改名,再在“/opt/prog/c”里用原名做一个符号链接,指向被移位更名的安装目录。“Apache”、“MySQL”等一些软件在这种情况下依然能正常工作。我会把这类软件从“/opt/prog/c”移到“/opt/prog/l”里,并在“/opt/prog/c”里做一个指向新位置的链接。
    “/opt/prog/m”。“m”,moveable,能四处般动的。还有一些软件,如“Tomcat”、“JDK”和“PostgreSQL”,即使不在它们最初的安装位置并且改名换姓只要改改环境变量,或者再做很少一点设置,它们也能正常工作。这类移动起来很方便,说走拍拍屁股能立马走人的软件我都挪到这里。
    “/opt/prog/tmp”。临时的杂物堆,新软件的安装文件暂时放在这里,新软件在这里编译、安装。
    “/opt/prog/store”。我没有更多的分区供“/opt/store”用,所以在我的机器上,“/opt/store”实际是指向这里的符号链接。

    做这些需要从Window$手里再抢至少一个分区过来。Linux安装时占用的3个分区和其前面的分区最好都不要动,只把其后面的分区转过来,除了可能让WinNT不高兴外,不会有什么影响。如果你的Linux恰好安装在最后几个分区,或者后面的分区不够用,你只好再抢前面的分区了,这时最好不要改变前面分区的个数。这也不会有太大影响。

    不幸,如果你必须改变前面分区的数目,调整完毕后你的Linux很可能无法启动。此时你就得用安装时制作的引导盘了。重新算计一下,看你此时的Linux“/”分区是哪个。假定此时的Linux“/”分区是“hdxy”,用软盘引导,看到“:”时输入“linux 1 root=/dev/hdxy”,Linux将以运行级别1启动。或者你有其他办法让这个Linux以运行级别1启动也可。按照前面的办法重新创建引导并制作一份Linux启动扇区的镜象。也别忘了调整“/etc/fstab”,同样还是按照你的实际情况,我的文件内容仅供参考:
/dev/hda9               /                       ext3    defaults                                     1 1
/dev/hda10              /usr                    ext3    defaults                                     1 1
/dev/hda6               swap                    swap    defaults                                     0 0
/dev/hda17              /opt/backup             ext3    defaults,ro                                  1 1
/dev/hda11              /opt/home               ext3    defaults                                     1 1
/dev/hda16              /opt/prog               ext3    defaults                                     1 1

/dev/cdrom              /mnt/cdrom              iso9660 noauto,owner,ro                              0 0
/dev/fd0                /mnt/floppy             ext3    noauto,owner                                 0 0
none                    /proc                   proc    defaults                                     0 0
none                    /dev/pts                devpts  gid=5,mode=620                               0 0
/dev/hda1               /opt/zzz/msw98se        vfat    default,ro,codepage=936,iocharset=cp936      0 0
/dev/hda12              /opt/zzz/msw2kpr        vfat    default,ro,codepage=936,iocharset=cp936      0 0
/dev/hda13              /opt/zzz/msw_app01      vfat    default,ro,codepage=936,iocharset=cp936      0 0
/dev/hda14              /opt/zzz/msw_app02      vfat    default,ro,codepage=936,iocharset=cp936      0 0
/dev/hda15              /opt/zzz/public         vfat    default,ro,codepage=936,iocharset=cp936      0 0

        6.5        备份与恢复

    如果前面一切都搞妥当了,你是否希望给你的系统做个备份,免得到时候玩坏了重装、重设置?那些不常用但是重要的资料还是放在Linux分区里吧,比FAT可靠多了。

                6.5.1        备份

    决定了就开始吧。把“/backup”所对应的分区下掉,再以可读可写的方式挂上。我有一个目录“/opt/backup/system/RfL4.0/Bate/1st”,专门做[红旗Linux桌面4.0Bate版]刚调试妥当时的完全备份。

    开一个终端,“cd /”到根目录。
    “tar czvf /opt/backup/system/RfL4.0/Bate/1st/bin.tgz ./bin”,这个命令就是把根目录下的“bin”目录用tar归档,再用gzip压缩,在目录“/opt/backup/system/RfL4.0/Bate/1st”里生成一个新文件“bin.tgz”。
    照这个格式把所有要备份的目录全备份下来,需要备份的目录有“bin”、“boot”、“dev”、“etc”、“initrd”、“lib”、“mycomputer”、“root”、“sbin”、“tftpboot”、“usr”和“var”。

                6.5.2        恢复

    哪天你的Linux坏了,但只要tar和gzip还能用,你就可以凭借那些备份来恢复系统了。
    以运行级别1启动Linux,挂上“/usr”分区和“backup”分区。
    “cd /”。
    “tar zxvf /opt/backup/system/RfL4.0/Bate/1st/bin.tgz”,把文件“/opt/backup/system/RfL4.0/Bate/1st/bin.tgz”解压缩和反归档到当前目录里。
    “tar zxvf /opt/backup/system/RfL4.0/Bate/1st/boot.tgz”。
    ……
    “tar zxvf /opt/backup/system/RfL4.0/Bate/1st/var.tgz”。
    这样就OK了。如果系统不能引导,看前面重建引导的方法。

    如果你有幸安装了多个Linux,那么即使一个Linux彻底坏了也不怕。你可以在一个还能正常运行的Linux中用命令“mkfs.ext3 /dev/分区编号”把坏Linux的分区格了,再把这个分区挂入这个好的系统的某个目录,进那个目录,然后解压缩和反归档那些备份文件,最后重建引导。前天我用这个办法在朋友的硬盘上种了两份Linux。
[/code:1]

回复贴到 http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=91508 。不要回复本贴。
发表于 2005-8-6 20:58:52 | 显示全部楼层
大哥,你说的“备份”和“恢复”的方法能否再讲清楚透彻一点呢?看了有点云里雾里...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-12-3 07:52 , Processed in 0.036899 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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