my blog my blog

Tag: grub
grub2对于usb无线键盘支持的设置方法

 

默认ubuntu的grub是支持usb无线键盘的,但是arch下默认的以及编译的grub都不能默认支持。这个问题困扰了奶牛很久了,昨天晚上终于搞定了。原因是没有加载usb_keyboard模块。需要在grub.cfg中添加如下模块的启动:

  1. insmod uhci 
  2. insmod usb_keyboard 
  3. insmod terminal_input usb_keyboard 

如果是usb 储存设备的支持

  1. insmod uhci
  2. insmod usbms 

顺便记录下,编译grub:

  1. ./configure --prefix=/usr --sysconfdir=/etc --disable-efiemu --disable-werror 

对于版本信息的更改,需要更改的文件是:

  1. grub-1.99/grub-core/normal/main.c  

嗯,知道上面这些,grub2的编译以及支持就差不多都搞定鸟

grub2编译安装

 

编译安装一次grub2,发现./configure会报错,很纠结。于是乎看.configure –help,知道可以添加  –disable-werror选项来把warning不归结到error中,然后编译成功。

记录下流程

  1. mkdir grub 
  2. cd grub 
  3. wget ftp://ftp.gnu.org/gnu/grub/grub-1.99.tar.gz 
  4. tar xzvf grub-1.99.tar.gz 
  5. cd grub-1.99 
  6. ./configure --prefix=/usr --sysconfdir=/etc --disable-werror 
  7. make 
  8. make install 

 

动态磁盘无法写入grub问题介绍

 

昨天帮小远装linux,发现正常安装后grub无法写入,而且最强大的是mbr中的windows引导还顽强的存在。当时分区的时候就感觉怪怪的,因为没有主分区跟扩展分区,刚开始也没多想,只是觉得怪怪的,后来经过很久的排错,终于知道了,原来是由于windows的动态磁盘造成的。

查了下百科,介绍如下:Windows 2000起引入了基本磁盘和动态磁盘的概念,并且把它们添加到Windows系统管理员的工具之中。无论是基本磁盘还是动态磁盘,你都可以使用任何文件系统,包括FAT和NTFS。而且你可以在动态磁盘改变卷而不需要重启系统。你可以把一个基本磁盘转换 成动态磁盘。但是你必须了解这并不是一个双向的过程。一旦你从基本磁盘变成了动态磁盘,除非你重新创建卷,否则你不能将它转变回去。

我们平时用的是基本磁盘,有主分区跟扩展分区之分,而动态磁盘默认都是简单卷,还有其它的卷模式。这里我们就不讨论了,我们只要知道这个grub无法写入的问题是由于动态磁盘造成的就ok鸟。

看了网上的一些文章,其实是有无损把动态磁盘转换为基本磁盘的程序跟方法的,但是这里只是针对简单卷的哦,有其它卷的就不好处理了。

资料我已经都整理到文件中了,朋友们有需要的可以直接下载无损转换动态分区工具包 (请先备份数据再使用,以防万一)

教程可以看下图:点击可以看大图

怎么无损数据地转换动态磁盘到基本磁盘

 

ubuntu Grub图形界面配置工具grub-customizer

 

以前我们配置grub的时候往往都是手动修改grub.cfg文件,现在奶牛为大家带来了一个新选择,grub customizer.

这是一款图形界面的grub配置工具,从分辨率到背景图片到字体颜色,再到开机等待时间,只要你能想到的配置,用grub customizer几乎都能做到。ubuntu 11.04采用的grub2可谓相当强大,引导能力超强,用这款grub customizer,我们可以来为我们的grub做做美化,做个美丽的背景图片啦,等等。

安装方法很简单:

1.直装

下载奶牛上传的包在ubuntu11.04下直装就可以了。

下载地址:http://yunfile.com/file/nenew/a919e7da/

2.PPA

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

3.编译

去https://launchpad.net/grub-customizer下载编译包,自己编译

安装grub2到U盘和移动硬盘的方法

 

grub2引导很强大,今天奶牛来说说如何安装grub2到U盘或者移动硬盘上。

首先进入终端

sudo su

fdisk -l

看看自己的u盘或者移动硬盘的设备名称。

然后在mnt下挂载我们的U盘或者移动硬盘设备。奶牛这里以sdb设备为例讲解。

sudo su

cd /mnt

mkdir u

mount /dev/sdb ./u (这里是把设备挂载到一个目录下,如果大家分过区就挂载第一个分区就可以了)

sudo grub-install –root-directory=/mnt/u /dev/sdb

运行到这里就安装完成了。大家可以重启看效果了,看看u盘启动是不是有grub2了~

ubuntu下用U盘安装grub2制作系统启动U盘锁

 

现在电脑保密的方式很多,开机密码啦,文件加密啦,指纹识别啦,等等,奶牛今天教给大家一个U盘启动系统的方法。只有插上U盘系统才能启动,没有U盘,那你就手动引导去吧~~~

原理很简单,因为我们的ubuntu系统是用grub2来启动,我们的grub引导程序是写再mbr上的,如果我们清除掉mbr而将引导信息写在我们的U盘上,那么就只能用U盘引导启动系统咯。对于高手来这个方法可能有些小儿科,不过折腾下玩玩也好啦~~~

首先呢,各位要确定自己的u盘可以作为启动设备进行引导,别折腾到最后自己的U盘无法在自己的电脑上引导。这里大家可以看看自己BIOS中的boot是否支持USB设备启动。

1.进入我们的ubuntu系统,这里奶牛以ubuntu 10.10为例说明,ubuntu 10.04啦9.10啦还有最新的11.04理论上都可以。

插入U盘,打开终端

sudo su

fdisk -l看看自己的u盘在/dev/下哪个设备,奶牛以sdb设备为例说明。

grub-install /dev/sdb

然后重启,将boot的顺序改为usb设备优先于硬盘。看看是否可以正常引导进入系统。

2.理论上应该可以正常引导,然后我们需要给我们的ubuntu的mbr做个备份了。

进入终端

sudo dd if=/dev/sda of=./mbr.bak bs=446 count=1

将用户目录下的mbr.bak复制到自己的U盘上,防止发生错误而引导丢失。

3.继续在终端下输入

sudo dd if=/dev/zero of=/dev/sda bs=446 count=1

将mbr用0来填充,从而达到清空mbr的效果。

重新启动,看看是不是只能用U盘启动啦。

此方法建议能完全看明白的朋友折腾,因为引导啥的挺麻烦的,别最后系统进不去神马的就不好啦。如果折腾到最后无法进入系统了,可以用live-cd来修复引导的。详细可以看奶牛的文章

修复ubuntu 10.10 ubuntu 11.04的grub2引导的方法

修复ubuntu 10.10 ubuntu 11.04的grub2引导的方法

自从ubuntu 9.10开始,ubuntu正式开始使用grub2作为引导程序。对于多系统用户,可能有时候会将引导搞丢了,下面奶牛来介绍下ubuntu等linux系统的grub2的修复。

1.需要一张可以引导的ubuntu live-cd,并且版本在9.10+

用live-cd引导进入系统,然后在mnt目录下挂载分区。

首先我们需要确定一个问题,你的/boot是否单独分区了,如果单独分区了请按照方法A进行,如果/boot没有单独分区,可以按照B来进行。

A:以/boot为sda8,/为sda9为例,如果还有其它linux分区也用同样的方法挂上来就可以了。

打开终端,

sudo su

fdisk -l   (查看分区内容,并且确定硬盘为sda啊还是sdb,或者hda还是sda)

mount /dev/sda9 /mnt

mount /dev/sda8 /mnt/boot

mount –bind /dev /mnt/dev

mount –bind /proc /mnt/proc

如果还有其它linux分区,用同样的方法挂载上

chroot /mnt

这时没有意外的话我们就已经进入了ubuntu的系统了

sudo grub-install /dev/sda

sudo update-grub

完工,重启,linux系统应该可以进入了。

B:方法与A类似,但是不用挂载/boot分区,所以mount /dev/sda8 /mnt/boot可以省略。其它操作一样。

如果在sudo update-grub后出现提示

Cannot find list of partitions!

请不要慌张,因为在多系统的环境下会出现这个提示,告诉我们无法识别linux之外的windows系统,正常重启还是可以进入linux的,进入系统后就啥都好说了,继续多来一次update-grub就可以了。

Ubuntu的启动配置文件grub.cfg(menu.lst)设置指南

 

奶牛用的第一个ubuntu版本是9.04,那时候启动配置文件还是menu.lst,到了ubuntu9.10的时候就更名为grub.cfg了,ubuntu 10.04依旧沿用的是grub.cfg,但是这个文件的内容变更并不是那么大。在ubuntu中,grub.cfg(menu.lst)就相当于windows系统下的boot.inf文件,记录着一些启动配置信息,在这里奶牛为大家介绍一些简单的设置规则。

打开命令行, sudo gedit /boot/grub/grub.cfg  (或者 sudo gedit /boot/grub/menu.lst)打开grub.cfg文件

在### BEGIN /etc/grub.d/00_header ###后面的部分主要记录了一些启动默认信息。

if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
这句中,default="0"表示从启动项中的第一个系统进行启动(就是那个默认的ubuntu),这里顺序是从0开始。例如:如果你想把启动项中的第五个选项作为默认的启动项,那么这里把数字0更改为4就可以了。

if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=2
这句中,else后面的timeout是指那个等待时间,以妙作为单位,我们可以根据具体需要进行修改。

在### BEGIN /etc/grub.d/10_lupin ###后面的部分记录着启动选项的信息。
例如:
menuentry "Ubuntu, Linux 2.6.32-22-generic" {
    insmod ntfs
    set root='(hd0,5)’
    search –no-floppy –fs-uuid –set 0e9ca6229ca60475
    loopback loop0 /ubuntu/disks/root.disk
    set root=(loop0)
    linux /boot/vmlinuz-2.6.32-22-generic root=/dev/sda5 loop=/ubuntu/disks/root.disk ro   quiet splash
    initrd /boot/initrd.img-2.6.32-22-generic
}
这是奶牛的ubuntu系统的第一个启动选项,第一行显示的是ubuntu的名称Ubuntu, Linux 2.6.32-22-generic,引号内的内容可以任意修改,    insmod ntfs是载入模块信息,例如insmod jpeg可以添加jpg支持,如要使用png或tga 文件做背景,加上 insmod png或insmod tga,。set root='(hd0,5)’这里很关键,这里是记录系统从那个分区启动,这里的顺序可能与你在windows下看到的顺序有所不同,因为windows下系统分区顺序是根据分区号来的,而分区号可以任意更改,而这里是物理意义上的顺序,你可以通过在终端中输入df命令查看挂载分区信息。这里hd0是指第一块物理硬盘,顺序也是从0开始,后面的5是指第6个分区,顺序也是从0开始排。讲到这里,那些在安装完ubuntu之后却没有windows启动选项的朋友们应该找到些思路了吧,对,我们就可以利用这个信息进行添加,比如我们可以添加
title        Windows XP
root        (hd0,0)
makeactive
chainloader    +1
表示从第一块儿硬盘的第一个分区进行启动widows xp系统。

linux /boot/vmlinuz-2.6.32-22-generic root=/dev/sda5 loop=/ubuntu/disks/root.disk ro   quiet splash

在这句中,splash表示闪屏,如果你不喜欢开机看到那个ubuntu的logo界面,你可以删除splash这个单词,这样ubuntu就不会以文字模式启动。

最后我在附加一个windows 7的默认启动选项

menuentry "Windows 7   (on /dev/sda1)" {
    insmod ntfs
    set root='(hd0,1)’
    search –no-floppy –fs-uuid –set 44c07536c0752f74
    chainloader +1
}

这里的search –no-floppy –fs-uuid –set 44c07536c0752f74是设定uuid=****的分区为root,和上句set root='(hd0,1)’重复,可删除。

 

grub.cfg(menu.lst)的设置奶牛就介绍到这里,希望对大家有所帮助。