西西河

主题:【原创】我的Gentoo经历 -- 瓦斯

共:💬30 🌺69
全看树展主题 · 分页首页 上页
/ 2
下页 末页
家园 【原创】用软盘启动gentoo修理硬盘主引导分区

我的硬盘上以前只有一个微软的视窗系统,后来为了安装linux就用pqmagic把原有的微软视窗分区减小一点,腾出一点空间来给linux使用。

安装linux之后,都会在主引导区(mbr)写下grub的引导程序启动/boot中的grub各个阶段,然后出现多重启动菜单,可以选择启动微软视窗或各种linux。我曾经在我的不大的硬盘中同时安装了xp、ubuntu和gentoo。

最近的xp有点毛病就重装了一遍,这就重写了一次硬盘的mbr,使得启动程序直接启动xp,也就是说多重启动菜单没有了,linux就没有机会启动了。

我知道我的gentoo都还好好地在那里,只是一时在xp中看不到而已。我已经学了一年的linux,不是一个刚刚学linux的了,我知道我不需要再花很多时间去重装一个linux来获得多启动菜单。

有几个方案可以修复主引导区,把硬盘拔下来插到另一台有linux的机器上,或者反过来把有linux系统的硬盘拔过来启动修改,或用gentoo安装光盘来启动后进入的简单linux环境来修改,或者你的主板足够新可以支持从usb设备装有linux移动硬盘的......我想了一会儿,觉得最简单的方法还是用软盘启动硬盘上已有的gentoo根分区,获得完整的linux环境之后,再运行grub重写mbr就应该可以解决了。现在的首要问题是有一张linux启动软盘,如果没有就自己做一张(怎么做?下次再写)。

现在假设手里已经有一张linux启动盘。

由于软盘的容量有限,基本上无法把最简单的gentoo包含进去(这个问题值得进一步探讨),我的启动软盘实际上只有一个/boot/grub下的文件和引导记录,不过,这就足够了。

我用这个软盘启动,在软盘的/grub下面有menu.lst文件,里面就是多重启动菜单的设置,我们已经预先把硬盘上的/boot和/所在的硬盘分区写在相应的地方了,所以用这样的软盘启动,直接就会把你带到硬盘上曾经装好的gentoo linux中去。

实际操作过程中,我没有去改写软盘上的menu.lst文件,那是一张去年学习ubuntu时做的一个启动软盘,上面的菜单指向的都是ubuntu的内核,并不能直接启动gentoo内核(文件名都不同)。不过,这都没有关系,grub是共同的。我在软盘启动了多重启动菜单时,随便选了一个ubuntu项,按e键进行修改:

1、把root设定为硬盘上/boot所在的分区,例如root (hd0,0)

2、把kernel 设定为硬盘上/boot中的kernel文件名。在grub的微linux环境中编辑命令行实在是一件非常爽的感觉,因为以前记不住gentoo的内核那么长的文件名啊!西西河请尽量在他的linux启蒙读物基于Linux内核的开放源代码操作系统的组成中介绍的tab大法在这里显示出了强大的威力,我打了kernel (hd0,0)/boot/空格,按了一下tab键,我那些在硬盘上的内核文件都显示出来了。看到这些文件时,虽然还没有成功,但我已经明白我即将成功了。这里很重要的是要在kernel 后面加上(hd0,0)或实际上其他分区的绝对名字,不能像在硬盘上启动那样简单地打上kernel /boot/kernel-xxxx-xxx之类的,那样grub会在软盘中找内核文件,如果软盘能够存的下就好了!

3、如果有initramfs之类的就再添加一行initrd (hd0,0)/boot/initramfs-xxxx-xxxx之类的,不要担心文件名太长会打错,有tab大神罩着呢。

都打好了吗?在grub中按b启动,如果顺利地话就看到你在硬盘上的内核欢快地启动了,然后要你登录输入口令。如果前面的命令有错,grub还可以让你回去修改,修改之后在启动。

进入我的gentoo linux之后,就是运行grub还我河山了,夺回被xp抢占的mbr。下次重启之后就可以见到grub的多重启动菜单了。

我在这个过程中还出了一点小麻烦,就是不同版本的grub的写的mbr记录和stag文件必须配套,不然也不能启动。

我去年装ubuntu的时候,grub是0.96,今年又装gentoo的时候grub已经是0.97版了。我一开始只是简单地用0.97版的grub去重写硬盘的mbr,而没有更新/boot/grub下面的0.96版的stag等文件,结果启动后就一个光标在闪烁无法前进。又用软盘第二次启动之后,把grub重新编译了一遍,更新了/boot/grub下面的文件,再次重启之后就看到原先的多重启动菜单了。

关键词(Tags): #gentoo#grub#linux

本帖一共被 3 帖 引用 (帖内工具实现)
家园 热烈祝贺

我已经学了一年的linux,不是一个刚刚学linux的了,

家园 持续的花上
家园 【原创】创建一张linux启动软盘

网上有不少探讨如何在一张软盘上建立一个自成体系的最小的linux系统。需要把内核和根精简到最小程度,使得他们能够挤在一张小小的1.44M的软盘里面。本文要说的不是这个努力方向。

我这里说的是假设硬盘上已经有一个可登录的linux系统,由于重装微软视窗系统等原因导致linux没有启动的机会的情况。我们需要一个启动设备去启动硬盘上完好的根,登录硬盘上linux之后再修改硬盘的linux启动能力。

我们的策略不是在软盘上建立完整的linux系统,而是建立一个grub启动程序,让一张软盘能启动grub,有自己的多启动功能菜单,这样想启动xp就xp,想要linux就linux。这个方案对于一张软盘的容量来说绰绰有余,甚至还可以把内存检测程序mememtest86以及自建的一些背景图片装进去。看到你的多重启动菜单有DIY的图片作背景,也是很惬意的事情啊。

软盘是实现非本地硬盘启动的方法之一,其他方法还有光盘启动、usb设备启动等。目前支持usb设备启动的台式机已经很普遍了,可是笔记本主板支持usb启动的似乎没见到,只见到笔记本支持usb光盘启动的。

新的机器、新的gentoo linux内核,在默认的情况下已经不装软驱或软驱识别了。这里作为一个备用方法,还是值得写一下。即使新的台式机主板主要用sata硬盘了,同时一般还留有floppy、IDE的插槽,需要的时候可以自己接一个软驱来使用。

如果gentoo linux中无法挂载软驱,如在/dev中根本就没有/dev/fd0或/dev/floppy之类的块设备让你去挂载,一开始真是没有地方下手了。通常执行一下

modprobe floppy
就会在/dev中出现该有的设备名称了。

把一张软盘插入软驱,在linux环境下格式化把软盘格式化为ext2的格式:

mke2fs /dev/floppy

执行

mount/dev/fd0 /mnt/floppy
挂载软盘。

执行

mkdir /mnt/floppy/grub
在软盘上建立grub目录。

执行

cp /boot/grub&* /mnt/floppy/grub/
把boot去里面的grub程序复制到软盘上相应的目录中去。如果/boot默认没有挂载要先挂载一下。

执行

cp /boot/grub/* /mnt/floppy/grub/
把boot里面的grub程序复制到软盘上相应的目录中去。

执行

nano /mnt/floppy/grub/menu.lst
修改启动菜单,要把kernel那一行中稍微修改一下,让它指向硬盘上的linux的/boot所在的分区。例如,kernel-gentoo-2.6.20-r8这个文件在硬盘的第一个分区,原来这一行是

kernel /boot/kernel-gentoo-2.6.20-r8
要改成

kernel (hd0,0)/boot/kernel-gentoo-2.6.20-r8

同样,如果有inird这一行的,也需要做相应的改变。当然,如果不想对原有的行进行改动,就在title行下面kernel行上面插入一行,写

root (hd,0,0)
就行了。

存盘退出。

现在要把软盘的mbr重写一下,让软盘启动的时候启动grub,从而进入多重启动菜单。

grub

root (fd0)

setup (fd0)

quit

如果一切顺利地话,这个启动软盘就做好了。

把主板bios中的启动顺序改一下,让软驱成为第一启动设备,这张软盘启动一下,看到grub的stag在慢慢调入内存...成功了。

在复制grub目录的内容到软盘上的同时,也可以把memtest86(+)复制到软盘中去,相应地menu.lst菜单中有有一项kernel memtest86之类的,就可以为很多机器检查内存了。

另外,如果有自己为grub启动菜单做好的背景图片,也可以在这个时候复制到软盘中去,让你的菜单有自己的背景图片。

关键词(Tags): #linux#启动#软盘

本帖一共被 1 帖 引用 (帖内工具实现)
家园 花。其实软盘要做好了,再弄张光盘也就手到擒来了。
家园 【原创】像微软视窗的网上邻居那样实现双机互联打游戏

让gentoo像微软视窗的网上邻居那样实现双机互联打游戏和文件共享,前提是要有网卡并被gentoo所识别和驱动。

查看你的网卡是否已经安装好了,使用这个命令:

ifconfig -a

如果结果只有lo开头的一段内容,说明网卡未被正确安装。需要用lspci这个命令来看一下插在机器中的硬件都有哪些以及型号,用dmesg也可以,但是内容很多。在lspci的结果中应该有一行“Ethenet controller:”的内容,表明网卡的型号,如果没有这样的一行,我也不知道怎么办了,多半是没有网卡或没有插好。

如果在lspci的结果中可以找到你的网卡而ifconfig却看不到它的配置,很可能是内核中为选择该型号网卡的驱动,重新编译内核选上你的网卡型号就可以。编译好内核后重新启动,一般就可以在ifconfig看到网卡了。如果还不能看到,可能需要自己配置以下udev的rule文件。

通常我们就一块网卡,名称就是eth0,相应地,如果还更多的网卡,名称就会是eth1、eth2、......我这里只说只有一块网卡的情况。如果你只有一块网卡,而它的名称却不是eth0,而是eth2或其他的数字结尾,就需要去/etc/udev/rules.d/70-persistent/net.rules中找到eth2字样的地方,把它改为eth0。

如果你的机器已经连接在一个局域网里面了,那么安装的时候一般网络自动就设置好了,每台机器通常已有自己的ip地址,需要做的只是共享自己的文件夹,或挂载别的机器上的共享文件夹。

我有两台不上网的老机器,分别都有一块网卡。我希望把它们连接起来,通过网上邻居共享文件和玩联机游戏,我就需要给他们设置固定的ip地址。要把一台机器的地址设定为192.168.0.7,就在/etc/conf.d/net这样写:

config_eth0=( "192.168.0.7 netmask 255.255.255.0" )

routes_eth0=( "default gw 192.168.0.1" ) #假设gateway在ip地址为192.168.0.1的那台机器上。

另外一台机器如果设定为192.168.0.1,就在它的/etc/conf.d/net这样写:

config_eth0=( "192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255" )

routes_eth0=( "default gw 192.168.0.1" )

为了让新的配置生效,可以分别运行如下命令:

/etc/init.d/eth0.net restart

为了让机器每次启动后都自动运行网络ip设置,就运行

rc-update add net.eth0 boot
把net.eth0写到启动的加载项中去。

两台机器都设置好各自的ip地址之后,通过ifconfig查看一下,直到有eth0开始的一段网卡的ip地址才算设置好了。

用cross-over电缆把两台机器的网卡连接起来,网卡上的灯就该亮起来,如果不亮说明网线类型不对或没有插好。

为了互相找到对方的机器,需要分别ping一下对方的地址,如在192.168.0.7的机器上输入命令:

ping 192.168.0.1
应该得到不断的回复信息,按下ctrl-C停止。如果显示找不到host那么网络还是没有搞好,回到前面几步检查重来。

当双方都可以ping到对方的机器时,网络就设置好了。

如果是在单位的局域网里面,就可以ping到很多机器的地址。

这时候就可以玩网络游戏了。

要共享文件,还需要作一些进一步的设置。


本帖一共被 1 帖 引用 (帖内工具实现)
家园 照例送花
家园 整个 gentoo 跟 windows 互联应该比较有意思
家园 好象没有LIINUX支持我的WIRELESS ADAPTER

用的是屋主的WIRELESS DSL, 好象只有M$才支持. 当然, 我那IPOD也是问题. VNC什么的倒不知道.

家园 【原创】gentoo linux文件共享samba经验点

瓦斯:【原创】gentoo linux文件共享samba经验点

家园 【原创】把gentoo安装在一个2G的移动存储卡中

我曾经把gentoo安装在移动硬盘中,拿着移动硬盘就可以到别人的机器上启动上网,走的时候不会给别人的机器留下垃圾。

我的机器中,通常是装有两三个操作系统的,我最多的时候曾经在一台机器上同时装有ubuntu、gentoo、windows xp、windows 2000和windows 7 beta。

有时后系统乱了,不能正常启动了,就需要一个工具盘来启动,修复一些设置之后就可以了,不需要大面积的重装,那样费时费力。

老的机器可以用软盘和光盘启动(硬盘启动出问题的时候),新的机器可以用usb设备启动。新的机器甚至已经没有软驱和光驱了,硬盘出问题的时候,还不得不用usb设备启动。

usb设备,有移动硬盘和外置光驱之类的,还有一个简便的东西就是移动内存条。现在常见的都有8G的了。把gentoo安装在可以动的内存条中,已经可行了。

这样做得好处,只是比笨重的移动硬盘和光驱方便一些。

制作过程和把gentoo安装在移动硬盘上,完全一样,只是这个移动硬盘稍微小一些罢了。

这是我的2G的可以动内存条的分区情况:

Disk /dev/sdb: 2004 MB, 2004877312 bytes

247 heads, 62 sectors/track, 255 cylinders

Units = cylinders of 15314 * 512 = 7840768 bytes

Disk identifier: 0xc3072e18

Device Boot Start End Blocks Id System

/dev/sdb1 1 4 30597 83 Linux

/dev/sdb2 5 37 252681 83 Linux

/dev/sdb3 38 255 1669226 83 Linux

gentoo所在的主分区其实只有1.6G左右,我在上面还安装了一个windowmaker,也就是说,可以有一个图形界面的gentoo了。

当然这个只是做来玩的,用它来做个临时的修理工具很好用,上网还不够,虽然它已经能够上网和下载。

如果安装在8G的内存条上,那么就可以是一个完整的系统了,就可以安装火狐,就可以上西西河聊天打屁了。

linux装在移动设备上的好处,是移动到几乎任何别的机器上都可以使用,最多也就是稍微到现场时临时修改一下配置,马上就可以使用了。

而我曾经试着把windows也往移动设备上安装,都不能成功,更别说移动到别的机器上了。

家园 老帖不能修改了,更正一下

Gentoo更像一个microsoft,尽量把所有的硬件都给驱动了,所以它的内核大,跑起来也要慢一点。所以Ubuntu适合初学者。使用 Ubuntu的时候,你的usb盘已插上去,它自动就给你配置好了,在桌面上出现一个移动盘的图标,而这些功能在gentoo中一般要自己去安装才会有,同时,用久了之后的人,也不一定需要这样的功能,自己挂载就可以了。

其中的Gentoo应该是Ubuntu。

家园 编译成static的应用

在对付大量的计算的任务效率有提高。

我曾经用gentoo1.4模块之类的直接包含在kernel里。glibc也是static调用,应用程序没有改变,整体性能提升在10%

家园 可以到你的无线网卡厂家的网页上下载驱动啊

我前段时间最近就对本本上的无线网卡折腾了很久,最后找到厂家的网页上下载了linux的驱动程序,就可以了。

后来我的linux升级了一次,有不行了,又是找到厂家去下载了新的补丁,之后才又恢复使用的。

另外,Linux还有一个通用的包,可以使用为微软的硬件驱动程序(有些硬件厂家根本就没有提供linux的硬件驱动),名字我一时忘了,想起来再说。

家园 ndiswrapper
全看树展主题 · 分页首页 上页
/ 2
下页 末页


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

Copyright © cchere 西西河