标签 grub 下的文章

如果你想要使用多个Linux发行版,你没有那么多的选择。你要么安装到你的物理机或虚拟机中,要么以live模式从ISO文件启动。第二个选择,对硬盘空间需求较小,只是有点麻烦,因为你需要将ISO文件写入到U盘或CD/DVD中来启动。不过,这里还有另外一个可选的折中方案:把ISO镜像放在硬盘中,然后以live模式来启动。该方案比完全安装更省空间,而且功能也完备,这对于缓慢的虚拟机而言是个不错的替代方案。下面我将介绍怎样使用流行的Grub启动加载器来实现该方案。

很明显,你将需要使用到Grub,这是几乎所有现代Linux发行版都使用的。你也需要你所想用的Linux版本的ISO文件,将它下载到本地磁盘。最后,你需要知道启动分区在哪里,并怎样在Grub中描述。对于此,请使用以下命令:

# fdisk -l 

带有‘*’的就是启动分区。对于我,就是/dev/sda1,用Grub语言描述就是(hd0,1)。

作为参考,sda2就是(hd0,2),sdb1就是(hd1,1),以此类推。(你明白了吧。)

我们需要编辑什么?

首先,打开/etc/default/grub并检查以下行:

#GRUB_HIDDEN_TIMEOUT=0

需要在此行前添加‘#’进行注释。

保存,然后打开/etc/grub.d/40\_custom。

在该文件中,你将添加启动到ISO的参数。结构如下:

menuentry "[Entry's title in the grub screen]" { 
set isofile="[path to ISO file]" 
loopback loop [boot partition in Grub language]$isofile 
[some specific] arguments
}

例如,如果你想要从ISO文件启动Ubuntu,那么你就是想要添加如下行到40\_custom文件:

menuentry "Ubuntu 14.04 (LTS) Live Desktop amd64" { 
set isofile="/boot/ubuntu-14.04-desktop-amd64.iso" 
loopback loop (hd0,1)$isofile 
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash 
initrd (loop)/casper/initrd.lz 
}

如果你想要启动Gparted:

menuentry "GParted Live amd64" { 
set isofile="/boot/gparted-live-0.18.0-2-amd64.iso" 
loopback loop (hd0,1)$isofile 
loopback loop $isofile 
linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia toram=filesystem.squashfs findiso=${isofile} 
initrd (loop)/live/initrd.img 
}

或者甚至是Fedora:

menuentry "Fedora 20 Live Desktop x86_64" { 
set isofile="/boot/Fedora-Live-Desktop-x86_64-20-1.iso" 
loopback loop (hd0,1)$isofile 
loopback loop $isofile 
linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=Fedora-Live-Desktop-x86_64-20-1 rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 iso-scan/filename=${isofile} 
initrd (loop)/isolinux/initrd0.img 
}

注意,参数可根据发行版进行修改。幸运的是,有许多地方你可以查阅到。我喜欢这个发行版,但是还有很多其它的发行版你可以启动。同时,请注意你放置ISO文件的地方。如果你的家目录被加密或者无法被访问到,你可能更喜欢将这些文件放到像例子中的启动分区。但是,请首先确保启动分区有足够的空间。

最后,不要忘了保存40\_custom文件并使用以下命令来更新grub:

# sudo update-grub 

以便在下次启动时看到修改。

接下来做什么?

想要更多东西?好吧,那就修改下参数来玩玩。你可以启动一个ISO文件,并让它持续做一些事情。例如,如果你是个彻头彻尾的妄想症患者,想要有个可以快速清除硬盘的选项,那么可以使用DBAN来进行一些设置。现在,真的要当心啊,因为此设置会清除你的硬盘,而且在启动时也没有恢复选项:

menuentry "Darik's Boot and Nuke" { 
set isofile="/boot/dban.iso" 
loopback loop (hd0,1)$isofile 
linux (loop)/dban.bzi nuke="dwipe" silent 
}

另外一个选择

menuentry "Darik's Boot and Nuke" {
set isofile="/boot/dban.iso"
loopback loop (hd0,1)$isofile
linux (loop)/dban.bzi
}

可以显示DBAN选项,让你选择清除驱动器。当心,因为它仍然十分危险

小结一下,对于ISO文件和Grub有很多事情可做:从快速live会话到一键毁灭,都可以满足你。之后,你也可以试试启动一些针对隐私方面的发行版,如Tails

你认为从Grub启动一个ISO这个主意怎样?这是不是你想要做的呢?为什么呢?请在下面留言。


via: http://xmodulo.com/boot-iso-image-from-grub.html

作者:Adrien Brochard 译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Figure 1: GRUB 2 menu with cool Apollo 17 background.

旧版GRUB我们使用了一段时间了,这个重要的Linux通用引导器的版本已经到了0.97。尽管旧版GRUB有很多的优点,但是它已经有点陈旧了,并且它的开发者也希望添加更多的功能,于是,GRUB 2 时代就要来了。

GRUB 2 做了几个明显的改进。它可以从移动存储设备上启动,并且可以通过配置一个选项来进入系统BIOS。相对于将所有的配置都放到一个配置文件/boot/grub/menu.lst中 (现在默认是/boot/grub/grub.cfg),使用各种脚本来配置会更复杂。你不要直接编辑这个文件,那不是人干的事,太复杂了,我们需要使用其它的脚本来改变。我们卑微的人类可以编辑修改/etc/default/grub文件,它主要是控制Grub菜单的外观。我们还可以修改/etc/grub.d/下的脚本,这些脚本用于启动操作系统、控制外部应用程序,如memtest 、os\_prober和theming等等 。./boot/grub/grub.cfg是由/etc/default/grub和/etc/grub.d/*生成的。当你修改了某个地方,你必须要运行update-grub命令来生成它。

好消息是,update-grub脚本可以可靠的检测内核、启动文件,并添加所有的操作系统,自动生成你的启动菜单,所以你不必手动的修改他们。

我们还要学习如何解决两个常见的故障。当启动系统时,它会停在grub>提示上,这是一个完整的GRUB 2命令界面,所以不要惊慌。这意味着GRUB 2依旧可以正常启动和加载normal.mod模块(它和其他模块分别位于/boot/grub/[架构]/ 下),但没有找到你的grub.cfg文件。如果你看到grub rescue> 这意味着它无法找到normal.mod,因此它有可能找不到你的启动文件。

这是如何发生的?因为内核可能改变驱动器分区号码的分配,或者您移动了您的硬盘驱动器,或者你手动改变一些分区,也有可能是安装一个新的操作系统或者移动一些文件。在这些情况下你的启动文件仍然存在,但GRUB不能找到他们。所以你可以在GRUB提示符中找到启动文件,设置它们的位置,然后启动您的系统并修复GRUB配置。

GRUB 2 命令行

GRUB 2 的命令界面和上一代GRUB中的一样强大。你可以用它来找到引导镜像,内核和根文件系统。事实上,它可以让你避开权限和其它访问控制,完全访问本地计算机上的所有文件。有些人可能会认为这是一个安全漏洞,但是你知道古老的UNIX的名言:有物理访问机器权限的人,就是拥有它的人。

当你在grub >提示时,你有许多类似命令行界面的功能,如命令历史和tab补全。但是grub rescue>模式是受限的,没有命令历史,没有tab补全。

如果你是在一个正常运作的系统上练习,那就当GRUB菜单出现时,可以按下C来打开GRUB命令行界面。你可以通过向上和向下光标键滚动你的菜单条目来停止启动倒计时。在GRUB命令行下做实验是安全的,因为做不了永久的修改,一切都是暂时的。如果你已经看到grub >或grub rescue>提示符,那就说明你的表现时刻到了。

接下来的几个命令可以在grub>和grub rescue模式下运行。你应该运行的第一个命令是设置一个分页器,将长的命令分页。如下:

grub> set pager=1

等号两侧必须不能出现空格。现在让我们做一点探索。输入ls来列出的GRUB识别的所有分区:

grub> ls
(hd0) (hd0,msdos2) (hd0,msdos1)

msdos是什么?这意味着该系统具有老式的MS-DOS分区表,而不是全新的全局唯一标识符的分区表(GPT)。参见“在Linux下使用新的GUID分区表,和古老的MBR说再见!”。如果你正在运行的GPT,它会出现(hd0,GPT1)。现在让我们看看,使用ls命令查看你的系统里面有什么文件:

grub> ls (hd0,1)/
lost+found/ bin/ boot/ cdrom/ dev/ etc/ home/  lib/
lib64/ media/ mnt/ opt/ proc/ root/ run/ sbin/ 
srv/ sys/ tmp/ usr/ var/ vmlinuz vmlinuz.old 
initrd.img initrd.img.old

太好了,我们已经找到了根文件系统。你可以省略msdos和GPT的标签。如果没有加分区后面的斜杠/,则只会列出分区的信息。你可以用cat命令显示文件系统上的任何文件:

grub> cat (hd0,1)/etc/issue
Ubuntu 14.04 LTS \n \l

在一个多引导系统上,通过/etc/issue文件可以知道这是哪个Linux系统。

从 grub> 中启动

下面讲述如何设置启动文件并从grub >提示下启动系统。我们已经知道如何从Linux根文件系统(hd0,1)下运行ls命令,你可以一直寻找直到找到你的/boot/grub所在位置。然后运行以下命令,记得使用您自己的根分区,内核和initrd映像等参数:

grub> set root=(hd0,1)
grub> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1
grub> initrd /boot/initrd.img-3.13.0-29-generic
grub> boot

第一行设置分区的根文件系统。第二行告诉GRUB您想要使用的内核位置。开始输入/boot/vmli,然后使用tab补完填写。输入root= /dev/sdX设置根文件系统位置。是的,这似乎是多余的,但如果你忘记了输入,你会得到一个kernel panic。你知道怎么找到正确的分区吗?hd0,1 即 /dev/sda1,hd1,1 即 /dev/sdb1,hd3,2 即 /dev/ sdd2。我想你可以自己推算剩下的了。

第三行设置initrd文件,必须是和内核相同的版本号。

最后一行启动系统。

在一些Linux系统上,内核和initrd是被符号链接到当前的根文件系统的根目录,就像:

$ ls -l /
vmlinuz -> boot/vmlinuz-3.13.0-29-generic
initrd.img -> boot/initrd.img-3.13.0-29-generic

所以,你也可以这样输入命令:

grub> set root=(hd0,1)
grub> linux /vmlinuz root=/dev/sda1
grub> initrd /initrd.img
grub> boot

从grub rescue> 中启动

如果你处在grub rescue> 命令界面下,命令有所不同,你必须要先加载两个模块normal.mod 和 linux.mod。

grub rescue> set prefix=(hd0,1)/boot/grub
grub rescue> set root=(hd0,1)
grub rescue> insmod normal
grub rescue> normal
grub rescue> insmod linux
grub rescue> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1
grub rescue> initrd /boot/initrd.img-3.13.0-29-generic
grub rescue> boot

在你加载了这两个模块之后tab补完的功能就可以用了。

永久性的修复

当你成功地启动你的系统,运行这些命令来永久修复GRUB:

# update-grub
Generating grub configuration file ...
Found background: /usr/share/images/grub/Apollo_17_The_Last_Moon_Shot_Edit1.tga
Found background image: /usr/share/images/grub/Apollo_17_The_Last_Moon_Shot_Edit1.tga
Found linux image: /boot/vmlinuz-3.13.0-29-generic
Found initrd image: /boot/initrd.img-3.13.0-29-generic
Found linux image: /boot/vmlinuz-3.13.0-27-generic
Found initrd image: /boot/initrd.img-3.13.0-27-generic
Found linux image: /boot/vmlinuz-3.13.0-24-generic
Found initrd image: /boot/initrd.img-3.13.0-24-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
# grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

当你运行 grub-install 时,记得GRUB是安装到整个硬盘驱动器的主引导扇区而不是到一个具体分区,所以不要加上像/dev/sda1一样的分区号。

如果还是不能使用

如果你的系统是如此的倒霉,而且这个方式没有能起作用,那就尝试超级GRUB2现场救援磁盘吧。官方GNU GRUB手册也应该有所帮助。


via: http://www.linux.com/learn/tutorials/776643-how-to-rescue-a-non-booting-grub-2-on-linux

译者:MikeCoder 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

不管你的Ubuntu 13.10系统是重新安装的或是从以前旧版本升级的,在使用了一段时间后,你应该会感觉到系统开始变慢。在这篇文章中,我们将了解到一些让你的Ubuntu运行得更快的技巧

在我们动手提高Ubuntu 13.10的整体系统性能之前,先思考下为什么系统会随着时间变慢。这里可能有很多原因,比如,你可能有一台简单设置了一下的低配电脑,你可能安装了很多在开机时吃掉系统资源的应用程序。实际上有各种理由。

在这里列出了一些小技巧,能帮你提高一点Ubuntu的速度。还有一些很好的技巧,可以用来提高系统性能,让系统运行更流畅。你可以选择尝试所有技巧或者其中的一部分,他们每一个都可以让你的Ubuntu更流畅,更敏捷,更迅速。

让Ubuntu 13.10运行更快的技巧:

我已经在我的Ubuntu 13.10上应用过这些技巧,但是我相信它们同样可以应用在旧版本的Ubuntu系统上,或者其他基于Ubuntu的Linux发行版,比如:Linux Mint,Elementary OS Luna等等。

减少grub默认的引导等待时间:

grub默认会给你10秒钟时间来选择要引导的系统或是进入恢复模式,这对于我来说太长了。这意味着你得呆在电脑边上按下确认键来立刻引导Ubuntu。是不是觉得有点浪费时间?第一个小技巧就是改变引导等待时间。如果你更喜欢GUI工具,可以阅读这篇文章通过Grub Customizer调整grub等待时间和引导顺序

对其他人来说,只需要通过下面的简单命令来打开grub配置文件:

sudo gedit /etc/default/grub &

GRUB\_TIMEOUT=10改为GRUB\_TIMEOUT=2,这样就可以把引导等待时间改成2秒。最好不要改成0,因为这样你就不能选择其他操作系统或者恢复模式了。在修改完成后,用下面的命令使改动生效:

sudo update-grub

管理开机启动应用程序:

慢慢的你开始安装各种应用程序。如果你是It’s FOSS的读者,你可能安装了许多本周最佳应用程序系列里推荐的应用。这里面很多应用都会开机启动,程序运行肯定会要消耗系统资源,结果就是:一台每次开机都要很长时间的缓慢启动。打开Unity Dash,然后找到启动应用

在里面,检查一下那些开机启动的程序,考虑一下哪些是你觉得没有必要每次开机都启动的程序,然后尽情地移除吧。

万一你不想从开机启动列表里移除程序呢?比如说,你安装了Ubuntu 13.10里最好的提示插件里推荐的程序,你希望它们可以在每次开机时都自动启动。这种情况可以这样处理,为应用程序的启动设定一个等待时间。这样,你可以缓解一点启动时的资源占用,而你的应用程序仍然会自动启动,不是是在一段时间后。在前一张图中,点击Edit,然后在运行的命令中加入一个等待。例如,如果你想延迟20秒再启动Dropbox提示,只需要在当前的命令前面增加一条命令

sleep 20;

这样,命令‘dropbox start -i‘变成了‘sleep 20; dropbox start -i‘。这就意味着Dropbox的启动会有20秒延迟。你可以像这样为其他开机启动的应用程序设置一个等待时间。

安装preload来加速应用程序加载时间:

Preload是个后台程序,会分析用户的行为和常用的程序。打开终端,用下面的命令安装preload:

sudo apt-get install preload

安装完后重启电脑,然后就可以把它忘了,它会在后台运行。[更多关于preload的信息]

选择最快的软件升级镜像服务器:

最好检查一下自己用来升级软件的镜像服务器是最快的。Ubuntu软件仓库在全球各地都有镜像服务器,建议选择一个离自己最近的。这样可以减少从服务器下载升级包的时间,所以软件升级会更快。

软件与更新->Ubuntu 软件->下载地址里选择其它,然后点击使用最快的服务器

系统会自动测试并告诉你哪个镜像服务器是最快的。通常来说,系统默认会选择最快的镜像服务器,但是,检查一下总是没有坏处。不过,如果保存升级包的距离最近的镜像服务器并没有经常保持同步的话,获取更新的时候可能会有点延时。对于网络连接速度比较慢的人来说,这个方法很有用。你可以在文章加速Ubuntu的WIFI速度里更深入地了解这些提示

用apt-fast代替apt-get来加速更新:

apt-fast是用来代替“apt-get”的的一个shell脚本程序,它通过多线程的方式改善了更新和下载安装包的速度。如果你经常用终端和apt-get来安装和升级软件的话,可以试试apt-fast。用下面的命令通过官方PPA安装apt-fast:

sudo add-apt-repository ppa:apt-fast/stable
sudo apt-get update
sudo apt-get install apt-fast

从apt-get更新中移除语言相关的可忽略的包:

你有没有注意过sudo apt-get update的输出?里面有三类标志,hitignget。你可以在这里了解它们的含义。检查一下包含IGN的行,你会发现它们大多数都是语言翻译相关的。如果你所有的程序和安装包都是英文的,那完全没有必要检查从英文到英文的安装包数据库。

如果你跳过apt-get的语言相关的更新,能够轻微地提高apt-get update的速度。想这样做的话,在终端里输入下面的命令:

sudo gedit /etc/apt/apt.conf.d/00aptitude

然后在文件末尾加入下面这行:

Acquire::Languages "none";

减少系统过热:

如今,过热是计算机的一个普遍问题,一台过热的电脑运行得非常缓慢。如果你的CPU风扇跑得像尤塞恩.博尔特一样快的话,可能会需要超长的时间来打开一个程序。在Ubuntu 13.10中有两个工具可以帮助减少系统过热来实现更好的系统性能,TLP和CPUFREQ。

通过下面的终端命令来安装使用TLP:

sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update
sudo apt-get install tlp tlp-rdw
sudo tlp start

在安装完TLP后不需要做其他额外的事情,它会在后台运行。用下面的命令安装CPUFREQ提示工具:

sudo apt-get install indicator-cpufreq

然后重启电脑,然后选择CPUFREQ的Powersave模式:

调整LibreOffice让它运行更快:

如果你经常使用办公软件,那你应该会想调整一下默认的LibreOffice,让它运行得更快些。这里会调整一下内存选项。打开LibreOffice,然后选择工具->选项,然后在左边栏里选择内存,并激活系统加速器来增加内存占用。

你可以看一下如何加速LibreOffice了解更多的细节。

使用软件的轻量替代:

这个更像是推荐和喜好。有些系统默认或流行的软件都需要占用大量系统资源,这并不适合一般的低配置电脑。这种情况下,你可以选择使用这些软件的一些替代程序。比如,用AppGrid来替代Ubuntu Software Center;用Gdebi来安装软件;用AbiWord来代替LibreOffice Writer等等。

这些就是我搜集的让Ubuntu 13.10运行更快的技巧。我相信这些小技巧可以整体提升系统性能表现。你是否也有一些隐藏的技巧来加速Ubuntu 13.10?这些小技巧对你是不是有帮助?请和大家分享你的看法,随时欢迎提出任何问题或建议,不要吝啬留下你的评论。


via: http://itsfoss.com/speed-up-ubuntu-1310/

译者:zpl1025 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

这个教程用于教授Arch Linux用户如何在Arch下安装Syslinux——一个轻量级、快速并且现代感十足的系统引导程序,用来替换掉系统自带的GRUB引导程序。

实际上,Syslinux不是一个简单的开机启动装载程序,它支持多种启动引导方式,本地载入,通过PXE网络载入,以及通过可移动媒体载入。并且,它还同时支持MBR和GPT磁盘,以及RAID设置。

在开始你实际操作之前,你应该知道Syslinux支持如下文件系统:FAT,EXT2,EXT3,EXT4和Btrfs,而且Syslinux能够运行在支持UEFI或BIOS的机器上。到目前为止,Syslinux还不能访问自己所在的分区之外的文件。

在你替换GRUB启动之前,请认真考虑,这只是一个可选的尝试,这个尝试有可能会给你带来一些麻烦。如果说你只是想感受一下新鲜的事物,或是已经厌倦了GRUB的界面,没问题来尝试尝试Syslinux吧。

在Arch box 中安装Syslinux

该说的都说完了,下面我们来开始安装Syslinux,准备替换掉已有的GRUB或者GRUB2启动程序。打开一个终端,输入如下命令来安装Syslinux

sudo pacman -S syslinux

安装完成后,你应该注意到一条消息,将指导您如何分别在BIOS或UEFI机器上部署Syslinux引导装载程序。BIOS用户比较幸运,因为他们只需要运行syslinux-install\_update 脚本就行了,这个脚本是Matthew Gyurgyik编写的,用来在BIOS机器上成功的部署Syslinux。

在Arch box上部署Syslinux

如果你拥有的是一个单独的/boot分区,你要保证你是在/boot分区上执行的这个脚本。在终端中输入如下命令:

sudo syslinux-install_update -i -a -m

这个脚本会安装必需的文件,并且用启动标记标记分区,同时会安装MBR引导代码。

配置Syslinux

这是非常非常重要的一步,任何人都不能忽略它,因为如果你的Syslinux没有正确的配置,你的电脑将不能启动。请再次注意。

目前,Syslinux能通过/boot/syslinux/syslinux.cfg文件进行配置。在the official Arch Linux page of Syslinux 中查看详细的配置指令。当你配置成功后,重启你的系统然后来看看新的启动引导程序效果如何!

如果你有任何的问题,请毫不犹豫的在评论中提出!


via: http://news.softpedia.com/news/How-to-Replace-GRUB-with-Syslinux-on-Arch-Linux-415394.shtml

译者:dy2009 校对:Mr小眼儿

本文由 LCTT 原创翻译,Linux中国 荣誉推出

我们可以在linux内核启动时为其提供各种各样的参数。这些参数可以自定义内核默认的行为,或者通知内核关于硬件的配置信息。内核参数应在内核启动时通过引导装载程序,如GRUB或LILO传递给内核。

在本教程中,我将会描述如何在linux上通过GRUB添加内核参数

如果你在使用GRUB引导装载程序,想修改或添加内核参数,你可以编辑GRUB配置文件。下面是针对特定发行版在GRUB的配置文件中添加内核启动参数的方法。

在Debian或Ubuntu上添加内核启动参数

在基于Debian的系统上,如果你想在系统启动时添加内核参数,你可以编辑 /etc/default/grub 目录下的GRUB配置模板。在 GRUB\_CMDLINE\_LINUX\_DEFAULT 变量中以 “name=value” 的格式添加内核参数。

$ sudo -e /etc/default/grub 
GRUB\_CMDLINE\_LINUX\_DEFAULT="...... name=value"

然后运行下面的命令来生成一个GRUB的配置文件。

$ sudo update-grub 

如果无法找到 update-grub 命令,你可以通过下面的命令安装它。

$ sudo apt-get install grub2-common 

在Fedora上添加内核启动参数

在Fedora上,想要在启动时添加内核参数,你可以编辑 /etc/default/grub目录下的 GRUB 配置模板。在 GRUB\_CMDLINE\_LINUX 变量中以 “name=value” 的格式添加内核参数。

$ sudo -e /etc/default/grub 
GRUB\_CMDLINE\_LINUX="...... name=value"

然后运行下面的命令生成 GRUB2 配置文件。

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg 

在CentOS上添加内核启动参数

在CentOS上,想要在启动时添加内核参数,你可以直接编辑GRUB配置文件 /boot/grub/grub.conf。在配置文件中,找到描述默认使用的Linux映像的条目。文件中最顶行的字符串 “default=N”会指示哪一个条目是默认的映像。

找到默认的映像条目后,在以 “kernel /vmlinuz-” 开头的那一段的结尾附加上内核参数。参数的格式为 “name=value” 。


via: http://xmodulo.com/2013/11/add-kernel-boot-parameters-via-grub-linux.html

译者:Linchenguang 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

在Debian中,没有menu.lst文件,取而代之的是grub.cfg文件,那么打开grub.cfg文件,我贴个我的文件内容:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set 37d5f764-cffc-47f6-bbb7-4a22ff86ddaf
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set 37d5f764-cffc-47f6-bbb7-4a22ff86ddaf
set locale_dir=($root)/boot/grub/locale
set lang=zh
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set 37d5f764-cffc-47f6-bbb7-4a22ff86ddaf
insmod png
if background_image /usr/share/images/desktop-base/spacefun-grub.png; then
  set color_normal=light-gray/black
  set color_highlight=white/black
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set 37d5f764-cffc-47f6-bbb7-4a22ff86ddaf
    echo    'Loading Linux 2.6.32-5-amd64 ...'
    linux    /boot/vmlinuz-2.6.32-5-amd64 root=UUID=37d5f764-cffc-47f6-bbb7-4a22ff86ddaf ro  quiet
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32-5-amd64
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set 37d5f764-cffc-47f6-bbb7-4a22ff86ddaf
    echo    'Loading Linux 2.6.32-5-amd64 ...'
    linux    /boot/vmlinuz-2.6.32-5-amd64 root=UUID=37d5f764-cffc-47f6-bbb7-4a22ff86ddaf ro single 
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32-5-amd64
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set ee1cfa2f1cf9f287
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

现在删除下图内容

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set ee1cfa2f1cf9f287
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###

保存之后关闭计算机,拔掉电源,等候一分钟后加电开机就看到grub中没有Windows的引导了。

这是我自己摸索的,大牛们有高见和指教请回帖描述,越详细越好。

摸索的过程很艰难,大家要注意的是修改了之后使用重启是看不到效果的,必须关机,断电,然后在开机。我不知道为什么,希望有大牛能回帖讲解给我们这些新人小号。

备注:文件具体在哪里?使用什么修改我这里就不说了,网上一查到处都是。

我的Debian版本是6.0.0