Linux 技巧之 Grub 超实用技巧
1. 简单介绍
什么是 GRUB?GRUB 全名Grand Unified Boot Loader,它是一个引导装入器 -- 它负责装入内核并引导 Linux 系统。GRUB 还能够引导其他操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 、DOS以及 Windows。虽然引导操作系统看上去是件平庸且琐碎的任务,但它实际上非常重要。
假设引导装入器不能非常好地完毕工作或者不具有弹性。
那么就可能锁住系统。而无法引导计算机。另外,好的引导装入器能够给您灵活性。让您能够在计算机上安装多个
操作系统,而不必处理不必要的麻烦。
废话不多说,看着也没多大意思,赶紧进入正文,想看介绍的能够去《GRUB新手教程》学习。
2. grub 技巧之基础应用
现在。较新电脑上装的都是grub2。而grub2 使用的配置文件是 /boot/grub/grub.cfg。打开后我们能够找到这样一句:
set default="0" 这一选项是用来选择默认系统的。0 即第一个,假设你有5个选项,他们分别相应 /boot/grub/grub.cfg 文件里的:
menuentry 'Debian GNU/Linux, with Linux 3.2.51-trace' --class debian --class gnu-linux --class gnu --class os { --- 0
...
}
menuentry 'Debian GNU/Linux, with Linux 3.2.51-trace (recovery mode)' --class debian --class gnu-linux --class gnu --class os { --- 1
...
}
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64' --class debian --class gnu-linux --class gnu --class os { --- 2
...
}
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os { --- 3
...
}
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os { --- 4
...
}
所以,你仅仅须要依据自己选择第几个内核就能够! 比方我想要我的win 7 作为默认系统,我能够将menuentry "Windows 7 ... 这一段 移到menuentry 'Debian GNU/Linux, with Linux 3.2.5 ... 之前,也能够直接将set
default="0" 中的0 改为4!
set timeout=5 这一选项用来设置grub 选项等待时间,假设是5 就是5秒内不选择,就载入光标所在选项!
3. grub 技巧之折叠选项
一台电脑装的系统多了或者变异的内核多了。可能你的GRUB 选项会变成这样:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG9uZ2Vyem9uZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="600" height="400" alt="">
选择一个你想进入的内核都得上下翻页翻半天。那么怎么处理这个问题?有效的管理这些个选项呢?关于这个,Ubuntu上的grub 或者能够给我们一个非常好的提示,对,假设你使用过 Ubuntu ,在你编译内核以后,一个系统上的内核会被折叠。比方说我的还有一台笔记本上的grub 会是这样:
* Ubuntu, with Linux 3.2.0-61-generic-pae
* Ubuntu, with Linux 3.2.0-61-generic-pae
* Previous Linux versions
* Windows 8 (loader)
光标移动到“Previous Linux versions” 选项上,进入后,grub才会展示出其它一些内核选项:
* Ubuntu, with Linux 3.12.13-rt4
* Ubuntu, with Linux 3.12.13-rt4 (recovery mode)
* Ubuntu, with Linux 3.12.13-ftrace
* Ubuntu, with Linux 3.12.13-ftrace (recovery mode)
* Ubuntu, with Linux 3.4.24-test
* Ubuntu, with Linux 3.4.24-test (recovery mode)
* Ubuntu, with Linux 3.2.0-51-generic-pae
* Ubuntu, with Linux 3.2.0-51-generic-pae (recovery mode)
那么我们怎么自己完毕这个动作,打开ubuntu 的/boot/grub/grub.cfg 后我明确了,原来这仅仅是grub的一个二级菜单功能 “ submenu "Previous Linux versions" { ... } ”,所以我的笔记本能够这么玩:
$ sudo vim /boot/grub/grub.cfg
menuentry 'Debian GNU/Linux, with Linux 3.12.9-gcov-rt13' --class debian --class gnu-linux --class gnu --class os
submenu "Previous Debian versions" {
menuentry 'Debian GNU/Linux, with Linux 3.12.9-gcov-rt13 (recovery mode)' --class debian --class gnu-linux --class gnu --class os
menuentry 'Debian GNU/Linux, with Linux 3.12.9-testing-rt13' --class debian --class gnu-linux --class gnu --class os
menuentry 'Debian GNU/Linux, with Linux 3.12.9-testing-rt13 (recovery mode)' --class debian --class gnu-linux --class gnu --class os
menuentry 'Debian GNU/Linux, with Linux 3.10.17-trace-rt12' --class debian --class gnu-linux --class gnu --class os
menuentry 'Debian GNU/Linux, with Linux 3.10.17-trace-rt12 (recovery mode)' --class debian --class gnu-linux --class gnu --class os
menuentry 'Debian GNU/Linux, with Linux 3.9.11-trace' --class debian --class gnu-linux --class gnu --class os
...
}
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os
menuentry "elementary OS, with Linux 3.2.0-51-generic (on /dev/sda10)" --class gnu-linux --class gnu --class os
submenu "Previous elementary OS versions" {
menuentry "elementary OS, with Linux 3.2.0-51-generic (recovery mode) (on /dev/sda10)" --class gnu-linux --class gnu --class os
}
menuentry "Ubuntu (on /dev/sda8)" --class gnu-linux --class gnu --class os
submenu "Previous Ubuntu versions" {
menuentry "Ubuntu。Linux 3.11.0-18-generic (on /dev/sda8)" --class gnu-linux --class gnu --class os
menuentry "Ubuntu,Linux 3.11.0-18-generic (恢复模式) (on /dev/sda8)" --class gnu-linux --class gnu --class os
menuentry "Ubuntu,Linux 3.11.0-13-generic (on /dev/sda8)" --class gnu-linux --class gnu --class os
menuentry "Ubuntu。Linux 3.11.0-13-generic (恢复模式) (on /dev/sda8)" --class gnu-linux --class gnu --class os
...
}
于是忽,我的机器如今启动是这种:
是不是清新很多?
4. grub 技巧之改动password
你认为你使用 Linux 系统安全么? 你有了password就安全了么?来试试GRUB 的强大吧!
。!
(1). 系统启动。进入grub 选择界面!如上面的图片所看到的
(2). 在一个选项之上按 e 键进入grub 编辑界面!(没事,大胆尝试,不会永久保存的。就算保存了不对的东西,不是还有recovery mode 嘛!。!)
(3). 比方我当前的编辑界面显示的内容是这种:
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos8)'
search --no-floppy --fs-uuid --set=root c81eebc3-ed49-4661-be49-eadeb0de4696
linux /boot/vmlinuz-3.2.0-61-generic-pae root=UUID=c81eebc3-ed49-4661-be49-eadeb0de4696 ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.2.0-61-generic-pae
我们须要改动的是上面我使用颜色标记的行,我们将 ro 改为rw 。后面的内容全删除!加入上 init=/bin/bash
也就是说,改完之后是这种:
linux /boot/vmlinuz-3.2.0-61-generic-pae root=UUID=c81eebc3-ed49-4661-be49-eadeb0de4696 rw init=/bin/bash
这时候,我们按Ctrx+X 或者F10 保存并进入。我们会发现经过一段时间载入后,我们没有不论什么password确获得了root 权限!!
!
那么这时候系统还安全么???我们能够载入不论什么分区,然后获取不论什么你想保密的内容!啦啦啦~~~
可是。我在这介绍这方法不是让你去整人的!
!
!它能够用在非常实用的方面: 丢失password能够用此方法改动password。系统崩溃能够使用此方法将关键文件拷贝走!
等等~~
5. grub 技巧之找回系统
有时候。我们会安装多个系统。比方上面照片中。我的一个笔记本上安装了4个系统。当中会将一个系统下的grub 作为电脑的载入程序!
比方说我的电脑上Debian 的GRUB 被我用做电脑的默认载入程序了!
可是某天我在 Ubuntu 上编译了一个内核,并使用 update-grub2 更新了grub, 可是系统启动,你会发现你的 update 并没有生效,你还须要到 Debian 下再使用 update-grub2 后。这个在 Ubuntu 下编译的内核才会在系统启动菜单中出现!
还有种情况。比方我的电脑上仅仅有Debian 和 win8 两个系统,可是某一天我的 win 8 崩溃了于是我重装了系统,启动后发现。我仅仅能进入windows 了,再也引导不了Debian 了。由于Windows 的引导程序还不能引导 Linux!
遇到这两种情况怎么办? 使用 grub-install
!方法能够參见《那些年解决的
Ubuntu 系统故障》
Linux 技巧之 Grub 超实用技巧的更多相关文章
- Linux 系统故障排查和修复技巧
Linux 系统故障排查和修复技巧 我发现Linux系统在启动过程中会出现一些故障,导致系统无法正常启动,我在这里写了几个应用单用户模式.GRUB命令操作.Linux救援模式的故障修复案例帮助大家了解 ...
- Linux 常用基本命令及应用技巧
需要pdf 版 联系我 我的文件中有目录一.Linux 的常用基本命令................................................................. ...
- linux 命令行 光标移动技巧
linux 命令行 光标移动技巧 看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动.在这里强烈建立适应GUI节目的开发者尝试一下在提示符下面工作.但是事情也不是 ...
- Linux的95个小技巧
Linux的95个小技巧 by WEB全栈工程师 on 2012 年 03 月 27 日 这里总结了Linux使用中的一些小技巧 1.实现RedHat非正常关机的自动磁盘修复 先登录到服务器,然后在/ ...
- 20个Linux服务器性能调优技巧
Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...
- Linux c c++ 开发调试技巧
看到一篇介绍 linux c/c++ 开发调试技巧的文章,感觉挺使用,哪来和大家分享. 通向 UNIX 天堂的 10 个阶梯Author: Arpan Sen, 高级技术人员, Systems Doc ...
- Linux下环境变量设置技巧
Linux下环境变量设置技巧,不用/etc/profile而是在/etc/profile.d目录下新建特定的shell文件来设置 区别: 1.两个文件都是设置环境变量文件的,/etc/profile是 ...
- [转]20个你不得不知的Linux服务器性能调优技巧
Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...
- Linux课程---7、shell技巧(获取帮助命令)
Linux课程---7.shell技巧(获取帮助命令) 一.总结 一句话总结: ls --help:简单手册 man ls:内容手册 1.tab补全? 命令+tab:加快敲命令敲文件目录的速度,多敲几 ...
随机推荐
- 令牌桶在数据通信QoS流量监管中的应用
令牌桶(Tocken Bucket,以下简称TB)在流量监管(以下简称CAR)功能中完成对流量进行限速的作用.流量监管主要是应用与网络边缘,从而保证核心设备的正常数据处理. 在流量监管的处理过程中,首 ...
- Android之——Fragment生命周期(日志截图版)
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46867159
- Linux - 输入输出流程序 代码(C)
输入输出流程序 代码(C) 本文地址:http://blog.csdn.net/caroline_wendy 使用输入输出流,控制文件流. STDIN_FILENO,STDOUT_FILENO代表标准 ...
- WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化
原文:WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化 [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制 ...
- 怎样学习HTML5?
怎样学习HTML5?这个话题,问的人非常多,随便百度一下就能看到各种各样的回答.只是感觉每种回答都不给力.以下我给出一个自己理解的HTML5学习的路线图,依照这个路线图学习以后,一般的HTML5项目开 ...
- shell程序设计(转)
1.shell脚本的基本概念: (1)Shell执行的是称为shell程序,这些程序通常被称为脚本. (2)Shell是一个用户和系统间接口的程序,它允许用户向操作系统输入需要执行的命令. (3)sh ...
- spring boot application properties配置详解
# =================================================================== # COMMON SPRING BOOT PROPERTIE ...
- JAVA之成员变量初始化
java中成员变量的初始化,如果是普通成员变量可以赋初值,如果没赋初值,则系统会自动赋初值.而对于局部变量必须手动赋初值. package MyText2; public class MyText1 ...
- Solaris 11的自动化安装(AI server)的搭建
solaris 11 总体比solaris 10很多变动的地方,可以去官方网站上面学习:http://www.oracle.com/technetwork/server-storage/solaris ...
- Delphi事件的广播 good
明天就是五一节了,辛苦了好几个月,借此机会应该尽情放松一番.可是想到Blog好久没有写文章,似乎缺些什么似的.这几个月来在项目中又增长了许多经验,学到许多实际应用的知识.不如把一些比较有用的记录下来, ...