Me

Showing posts with label 计算机. Show all posts
Showing posts with label 计算机. Show all posts

1/06/2011

/boot 分区被删掉了怎么办?

/boot 分区被删掉了怎么办?


这个真的是在我办公室电脑上发生了。当时正常开机,等待引导系统时,却发现直接进入了 grub 命令行 grub>
我顿时感到惊奇,哪里出了问题?不过还是试着加载内核,但是输入 (hd0,5) 后提示错误。按 tab 键出来的备选分区也少了一个。
我试着引导 XP,
grub>rootnoverify (hd0,0)
grub>chainloader +1
grub>boot

还好,XP 正常引导,看来不是硬盘的问题。从 XP 中查看了分区结构,/boot 那个几百兆的分区神奇的被删除了。到现在我还是没有找到被删的原因。
既然如此,那就每天输入命令进 XP 吧,反正工作也需要它。
前言到此结束。
直到昨天,我决定把我的 Fedora 修好。
按照自己的假设,应该重建 boot 分区然后挂载,把内核镜像还有 grub 相关文件放进去,就可以了。当然前提是要能建立删掉的分区才可以。XP 下是没指望,还是用万能的 rescue 模式吧。
我没有 rescue 光盘,也不打算为此刻录一张(太浪费资源了)。在此向您推荐 bfo[1] 或 bko[2],关于这两个的介绍可以参考我之前写的kickstart 和 BFO 引导自动安装 Fedora[3]。
现在进入恢复步骤:
1. 从带有 bfo 镜像的 U 盘启动计算机,通过 bfo 进入 rescue 模式;
2. rescue 模式会找到硬盘上已有的 Linux,然后按提示进入 shell;
3. 为了方便,在进入 shell 后执行 chroot /mnt/sysimage/;这样可将找到的 Linux 系统的根目录设为当前 shell 下的根目录;
4. 执行 #fdisk /dev/sda,然后按 p 列出当前分区表结构,以保证稍后建立分区时不会出错。如果你非常地熟悉自己的分区结构,可忽略这个操作;
5. 按 n 键,新建分区,我的 /boot 之前处于扩展分区,因此这里还是选择扩展分区(l),然后设置分区起止位置,如果跟我一样,硬盘只剩下之前 /boot 那么点空白空间的话,那直接使用默认值就可以。如果您的硬盘空白空间很大,并不打算都用作 /boot,那就小心一点,根据您的需要进行调整;
6. 完成新建分区后,按 p 键你也许会发现分区顺序有所改变。例如我新建的分区就成了 /dev/sda7。这时我们可以按 x 进入 expert mode,然后按 f 键,重新调整分区编号顺序,使得分区编号与分区所在物理位置对应,修改后新建的分区编号为 /dev/sda6;
8. 完成以上步骤,并确认没有错误后,按 w 键保存分区表,退出 fdisk。
重新启动计算机,再次进入 rescue 模式,重复 1-3 步,
9. 然后执行 #mkfs.ext4 /dev/sda6,在新建的分区创建 ext4 文件系统;
10. 修改 /etc/fstab,将新建的分区挂载到 /boot;
11. 重新安装引导程序和内核:
执行 #grub-install /dev/sda 重新安装 grub
运行 #yum update kernel 安装最新的内核
12. 如果这时已有 /boot/grub/grub.conf 文件,那么就可以直接重启完成修复;否则要是像小弟我,装完 grub 没有 grub.conf(我怀疑是我先安装内核后安装 grub 造成的)文件,那就需要自己动手写一个了(这个过程略掉了)。好在我之前保存过一个备份,直接改改复制到了 /boot/grub/ 下,好了,重新启动;

一切正常,/boot 重建成功,大功告成。

[1] http://boot.fedoraproject.org
[2] http://boot.kernel.org
[3] http://www.helpsworld.org/blog/?p=481

12/20/2010

手动升级 Fedora 12 中的 Firefox-3.5 到 Firefox-3.6.13

Fedora 12 已经没有 Firefox-3.6 的更新了。虽说 Firefox 下载解压即可使用,但是为了方便就尝试把 3.6 的文件放到 /usr/lib/firefox-3.5/。也许这真是多此一举 :)

1. tar xjf firefox-3.6.13.tar.bz2 # 解压生成 firefox 目录

2. rsync -rvu firefox /usr/lib/firefox-3.5/ # 使用 rsync 其实是为了更新 /usr/lib/firefox-3.5 中已有文件,不过参数没有正确,把以前没有的也更新进去了。其实这样还不如直接 cp

3. 同样的方式有 rsync 了 /usr/lib/firefox/plugins,还是不如直接 cp;mv /usr/bin/firefox /usr/bin/firefox.bak;cp firefox/firefox /usr/bin/firefox

4. bash 下运行 firefox,这时错误就出现了,找不到 lib 文件目录。解决也很简单:vi /usr/bin/firefox # 修改里面的 moz_libdir="更新后 firefox lib 文件目录",也就是 /usr/lib/firefox-3.5
其实就是因为 lib 的目录位置问题

5. 再次运行 firefox,崩溃掉。log details 显示与两项 adds on 有关;

6. bash 运行 firefox -safe-mode,禁用掉 adds-on,这回可以了。在安全模式下禁用有问题的 adds-on,重新启动 firefox,更新 adds-on。

是个有些麻烦的过程。:)

7/15/2010

利用 Kickstart 和 BFO 自动安装 Fedora

前言


kickstart 是 Redhat 开发的一个系统自动安装方案。它可以用来自动安装 RHEL 以及 Fedora。采用 kickstart,用户只需建立一个配置文件,将安装过程中所需的操作(如分区方案、软件包信息、引导程序等等)写入文件,安装程序即可按照该文件进行自动安装。详情请见:kickstart wiki 页面 [1]

BFO 是随 Fedora 13 带来的一个新的安装方式,基于 BKO(http://boot.kernel.org),它通过网络运行安装程序并进行操作系统的安装。BFO 的镜像文件很小,本身不足 1MB,而且几乎无需更新。只需从 bfo.iso 引导,即可安装你想要的 fedora 版本。不过,前提是你要有网络连接。详情请参考:bfo [2]

准备工作


1. kickstart 文件,在你用常规方式安装完系统后会在 /root/ 目录下保留一份 anaconda-ks.cfg,如果想要按照你当前系统的设置来自动安装,不妨直接使用该文件。

注意:系统安装通常都是通过光盘或其它介质安装,安装源都位于本地。为了配合 bfo 安装,需要对生成的 kickstart 文件中的安装源做下修改。

此外,也可以使用 GUI 工具 system-config-kickstart 来生成。当然如果你熟悉 kickstart 文件格式的话,可以直接编辑一个。
1.1 下面我以我虚拟机上的一份 ks.cfg 为例,对 ks.cfg 做个简单介绍。

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --enabled --service=ssh #防火墙开启,ssh为信任服务。
# Install OS instead of upgrade
install #全新安装
# Use network installation
url --url="http://download.fedoraproject.org/pub/fedora/linux/releases/12/Fedora/i386/os/"
#如果使用本地安装后生成的 kickstart 文件,那么就要添加这个选项。
#该选项指定了网络安装时安装文件的位置。
#它的目录结构必须跟光盘中的结构完全相同。
# Root password
rootpw --iscrypted $1$jsonnTig$f7b4NFqCj2UBr.4bfrkH.0 #root用户密码,已经过加密处理
# System authorization information
auth --useshadow --passalgo=md5
# Use text mode install
text #如果不指定 text,那么默认会使用图形安装方式
# System keyboard
keyboard us # 这个是键盘布局,使用 us 键盘
# System language
lang en_US # 系统语言
# SELinux configuration
selinux --enforcing #selinux 选项
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai #系统默认时区
# System bootloader configuration
bootloader --location=mbr #引导程序安装位置
# Partition clearing information
clearpart --all --initlabel #分区选项,clearpart --all 即清空所有分区,--initlabel 表示初始化磁盘
%packages #软件包选项
@base #我的虚拟机配置太低,而且是通过网络安装,因此只选了最基本的包
%end


以上就是一份简单的 kickstart 文件内容,更多的选项可以参考 Fedora 文档 [3]中的 Fedora 安装指南,或者 Kickstart的wiki页面 [1]

2. bfo 镜像文件,这个文件可以直接到 bfo下载页面[4] 下载,我这里使用了光驱镜像文件,bfo.iso。如果你用实体机安装,建议还是用 USB 的镜像比较好,不到 1MB 的小东西,刻张盘太浪费了。
3. 网络连接
这个是必须的:)

安装


1. 首先从含有 bfo 镜像的设备启动,我这里的虚拟机就是用虚拟光盘引导了。引导界面如下图:

2. 通过 bfo 文件引导后,将进入如下的画面:

3. 选择第二项,Install Media,按回车键;
4. 接下来将看到类似如下图片的屏幕:

5. 这次安装的是 32位的 Fedora 12,选中后按 Tab 键,编辑引导选项。

在最后,我们加上 linux ks=http://my.example/ks.cfg,这指定了 kickstart 文件的位置。ks 文件的位置可以为本地,也可以为网络。这要根据具体情况办了。详细参数还是请看 kickstart 的wiki吧。
6. 添加 ks 文件位置后,按回车,自动安装就此开始了。如果 ks 文件配置正确,网络连接正常,过一会我们就可以使用我们的新系统了。

文中参考链接


[1] http://fedoraproject.org/wiki/Anaconda/Kickstart
[2] http://boot.fedoraproject.org/index
[3] http://docs.fedoraproject.org/
[4] http://boot.fedoraproject.org/download


10/13/2008

我用LINUX之心得

第一次知道linux好像是通过电脑爱好者,第一次安装,则是在我有了第一台自己的PC时---2005.10.15,我的PC诞生了,同时开始了我的LINUX之旅.那天攒完机子我让攒机的人帮我买linux,他拿了个FERORA CORE 4,还有一个别人刻的REDHAT LINUX 9.0,后者很贵,前者我记得是48,看着前者包装很好,是正规出版品,于是买了.那时我还不知道它跟REDHAT的关系.知道我看了包装盒后面的介绍.晚上开了机便开始安装,可是就是装不上,总报错,到硬盘分区就出错.不知试了多少次,在某一天终于装上了,那天很兴奋.第一次引导进去很兴奋,但是问题出来了,没有声音,关机无法断电.当时的我并不懂得网上寻找答案或是看论坛.因为我根本不知道是什么问题.去学校图书馆借了本关于REDHAT LINUX 9.0的书,很基础的那种,慢慢的学会使用命令,当时就是常用命令,ls,su,mount等等.其他的一切我都不懂,周围没有用linux的人,所以一直以来我就是自学.后来听说了有linuxsir.org,于是注册加入,发帖问了两个问题,[url]http://www.linuxsir.org/bbs/thread285556.html这个帖子里面,cobranail的回答给了我很大启示,我开始慢慢学着自己找答案,提高自学能力.慢慢的,我长进了不少,懂得了更多[/url].

由于后来的声音问题得以解决,但是关机还是有问题,于是开始尝试编译内核,这个过程断断续续的持续了一段时间,最后不经意间成功了,很有成就感,当时是在Fedroa 7上.

在那段时间内自己还在windows下用虚拟机装了fedora,freebsd,就是在这个过程中,我知道了如何解决Virtual PC下Fedora图形界面花屏的问题,即修改/etc/X11/xorg.conf,将最后的screen中颜色深度改为16.最近装Fedora8时发现鼠标不能使用,搜索后明白需要在grub.conf内核参数后加上 io8042.noloop

使用很长时间了,一直没有试过用源码编译安装软件,因为觉得tar命令过于复杂(tar命令仅是在编译内核时看着帮助使用过)无从下手.但是在realplayer不好用,决定使用mplayer时,下决心用源码装了一次,感觉也没有那么难,于是慢慢的开始学着使用tar命令,使用源码安装软件.再到后来开始利用yum对系统进行升级更新.

从Fedora Core 4到现在的Fedora 8,使用了3年,也有了一些经验和心得.自己在论坛里也可以帮助别人了,尽管微乎其微.

去年年底开始学着配置ftp,http服务器,学会了怎样启动/停止服务,怎样修改配置文件,还有如何写html代码,但是写代码没坚持太长时间,一直停留在入门水平.

现在习惯了命令符,习惯了linux方式,学到了不少知识,但还有待多学习,因为目前还是不太会看log,不会更高级的使用源码安装.
另外通过学习linux,对自己的windows使用水平也有了很大的帮助.总在网上看到用windows的人说linux不好,用linux的人说windows不行,但我觉得操作系统各有特点,各有优势,属于个人习惯及爱好问题.
通过linux的环境变量,我明白了windows下的环境变量.
通过linux下的重定向,我学着在windows下使用它(以前我不知道windows下也可以).
……

还有很多东西想写,但是一下想不起来,有的还说不明白.
最后说个使用技巧,也许大家都知道,
就是从Fedora前几个版本开始在用户目录下出现了类似windows下的Document,Picture等文件夹,但是都是大写的,感觉很不方便,于是改成小写,开始修改后发现保存东西时会出现错误,无法找到位置等等,后来明白是~/用户/.config/user-dirs.dirs文件中对应的关系没有修改的原因,只需要把该文件中的对应名称改为想要的即可.

在这罗嗦了这么多,不知道对各位有无帮助,就算是自己的一篇日志了,:)