西西河

主题:【原创】基于Linux内核的开放源代码操作系统的组成:第一篇 -- 请尽量

共:💬75 🌺106 新:
全看分页树展 · 主题 跟帖
家园 【原创】安装Linux之偏向虎山行

好罢,让我们看看能不能制服这个拦路虎。

这里全是纸上谈兵。我一般都用自己或同事做的rescue光盘,所以我假设下面所用到的Live CD包含所有要用到的工具。另外,你还要知道fdisk或者其他一些命令的用法,所以如果旁边如果有一台可以上网的机器有可能会起很大帮助。如果你不介意用其他distro的话,可以找一个SuSE9的安装盘,上有rescue模式,基本用法和下面的步骤类似。RedHat的安装盘应该也有rescue模式。

开始之前,找个什么借口为你自己预留足够的时间,准备好水、面包或方便面,做好连续作战的准备。

一,签署一个免责协议:万一安装失败,别来找我和铁手的麻烦。

二,把你那个W2K硬盘上的东西好好做个备份。

三,从W2K中找出笔记本(称为“目标机”)的以下信息:CPU类型、主板chipset、网卡、显卡、声卡、硬盘、USB芯片、内存数量。

四,找一个2.5?嫉钠irewire或者USB2的HD enclosure,或者一个2.5"-3.5"的IDE转换插头。

五,把W2K硬盘连到那个WINXP机器上(方便起见,我们称其为“宿主机”)。

六,找一个Live CD,最好是Knoppix(www.knoppix.org),因为这是基于Debian的,也最成熟、稳定,支持的硬件最广。

七,用Live CD启动宿主机,进入Linux。如果宿主机的显卡不是很奇怪的话,Knoppix应该可以启动图形界面。但无论如何Knoppix要把我们带入字符界面,否则就玩儿不下去了。

八,在宿主机上,找出W2K硬盘的设备名。如果是用的HD enclosure,对Linux来说是个SCSI硬盘,对一个普通桌面系统,一般是/dev/sda。如果用的是IDE转换插头,那么还是个IDE硬盘,例如/dev/hdc(hda是第一个IDE channel的master,hdb是第一个IDE channel的slave,以此类推)。我们假设是用HD enclosure,那么设备文件名应该是/dev/sda。

九,用fdisk命令把W2K分区删除,再建立两个Linux分区和一个swap分区。一般来说,swap分区大小应该是目标机内存的两倍。如果内存有512MB甚至更多,那么和内存相等就可以了。两个Linux分区一个用于装系统,另一个可以作数据分区,并留着以后改装其他distro。两个Linux分区的大小相等就可以了,比如说等于目标机的硬盘尺寸减去swap分区大小,再除以二就可以了。把第一个Linux分区标为可启动。因为fdisk是interactive的,所以不太容易描述该如何完成上面的步骤。你可以现在宿主机上看看联机文档,例如:“man fdisk”。

如果你还想保留W2K,那么你在开始前还必须找个工具shrink有W2K的硬盘分区。FAT32很容易。但如果用的是NTFS,就没那么简单了。

十,用mke2fs命令把两个Linux分区格式化为ext2文件系统,例如:“mke2fs /dev/sda1”。用mkswap命令格式化swap分区,例如:“mkswap /dev/sda2”。记住系统所在的分区,比如是/dev/sda1,和swap分区,比如是/dev/sda2。

十一,在宿主机目录树的某个地方建一个目录,例如/target。(Live CD通常会把根文件系统放在一个RAM Disk上,是可写的,但是掉电就没了。)把/dev/sda1挂到/target下:“mount -t ext2 /dev/sda1 /target”。

十二,把宿主机的目录树复制到/target上。但是因为/target本身现在是宿主机的目录树上,所以直接从宿主机的根目录开始复制会进入无限递归。一般的做法是在/target下生成如下的子目录:bin、boot、dev、etc、home、lib、root、sbin、usr、var:“mkdir /target/bin /target/boot /target/dev ...”。然后用cp -R复制各个子目录,例如:“cp -R /bin /target/bin”。在/target下再建立以下子目录:proc、sys、tmp、data:“mkdir /target/proc /target/sys ...”。最后设置/target/tmp的存取权限:“chmod 1777 /target/tmp”。

十三,把/target/etc/fstab改为以下内容:

---开始---

/dev/hda1 / ext2 errors=remount-ro 0 1

/dev/hda2 none swap sw 0 0

/dev/hda3 /data ext2 defaults 0 2

---结束---

十四,把/target/etc/lilo.conf改为以下内容:

---开始---

boot=/dev/hda

root=/dev/hda1

install=/boot/boot-menu.b

#bitmap=/boot/sid.bmp

map=/boot/map

delay=100

image=/boot/vmlinuz-2.6.9

label=Linux

read-only

---结束---

这里面有一个变数是内核映像文件名,这里我假设Live CD是用的“vmlinuz-2.6.9”,所以你把/boot复制到/target/boot后也是同一个名字。你可以从/etc/lilo.conf找出具体的文件名。当然,我这里假设Live CD用的是LILO。如果用的是Grub,其配置文件是不同的,我没有多少经验,就不瞎说了。

十五,如果Live CD用的是LILO,现在需要把LILO的引导代码安装到目标机的硬盘上:“lilo -r /dev/sda”。

十六,把/target从宿主机的目录树上卸下来:“umount /target”。

十七,把宿主机关掉。因为我们用的是Live CD,所以可以直接断电,不用执行正常的关机程序。

十八,把目标机的硬盘装回到目标机上,接通电源,cross your fingers ...

十九,如果们的运气不错,那么你现在应该可以看到LILO运行、加载内核、初始化硬件、启动各个子系统,然后是图形界面,最后是图形界面的登录程序在等待你输入用户名和密码。如果图形界面启动失败,最后会出现字符界面的登录提示。

如果图形界面启动失败,在登录到字符界面后,运行这个命令:“find /target/etc/rc*.d -name S*[kgx]dm -exec rm -f \{\} \;”。注意最后的一个字符是个分号。以后系统启动时就不会在试图运行图形界面了。当然,等你对Linux和Debian得心应手后,要重新让图形界面自动启动就不再是难题了。

其他要调整的包括声卡、网卡、USB驱动、甚至主板芯片集等。一般来说,声卡是最难的,仅次于显卡。其他都相对容易。

如果我们运气不够,要么重新来过,直到成功,要么收拾东西,并想好该怎么向领导解释把笔记本搞得不能用了。

元宝推荐:Highway,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河