自己手动破坏grub配置文件,手动安装grub

一.第一种方式安装grub

1.首先要确定你的系统所在的分区

[[email protected] boot]# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          25      200781   83  Linux
/dev/sda2              26          89      514080   82  Linux swap / Solaris
/dev/sda3              90        2610    20249932+  83  Linux

2.手动破坏bootloader(只要破坏MBR中的前446字节就行)

[[email protected] boot]# dd if=/dev/zero of=/dev/sda bs=400 count=1

然后同步数据到磁盘上

[[email protected] boot]# sync
[[email protected] boot]# sync

记住这时一定不要重启,如果重启了只有在紧急救援模式才能修复

3.用grub命令进入grub命令行接口

[[email protected] boot]# grub    

4.指定内核所在分区及要安装到那个分区上

grub> root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd0)"...  15 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/grub.co
nf"... succeeded
Done.

grub> quit

5.然后重启就行了

二.第二中方式安装grub

1.再添加一块硬盘用于做测试使用, 下面为对新增的硬盘进行分区和格式化

[[email protected] ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won‘t be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): p       

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
1
Invalid partition number for type `1‘
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1): 
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130): +100M

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (14-130, default 14): 
Using default value 14
Last cylinder or +size or +sizeM or +sizeK (14-130, default 130): +500M 

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (76-130, default 76): 
Using default value 76
Last cylinder or +size or +sizeM or +sizeK (76-130, default 130): +100M

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          13      104391   83  Linux
/dev/sdb2              14          75      498015   83  Linux
/dev/sdb3              76          88      104422+  83  Linux

Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): L

 0  Empty           1e  Hidden W95 FAT1 80  Old Minix       bf  Solaris        
 1  FAT12           24  NEC DOS         81  Minix / old Lin c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          82  Linux swap / So c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  83  Linux           c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     84  OS/2 hidden C:  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   85  Linux extended  da  Non-FS data    
 6  FAT16           42  SFS             86  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4d  QNX4.x          87  NTFS volume set de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 88  Linux plaintext df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM       e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi ee  EFI GPT        
 f  W95 Ext‘d (LBA) 54  OnTrackDM6      a5  FreeBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a6  OpenBSD         f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot     fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
Hex code (type L to list codes): 82
Changed system type of partition 3 to 82 (Linux swap / Solaris)

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          13      104391   83  Linux
/dev/sdb2              14          75      498015   83  Linux
/dev/sdb3              76          88      104422+  82  Linux swap / Solaris

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]# partprobe /dev/sdb
[[email protected] ~]# sync
[[email protected] ~]# sync
[[email protected] ~]# sync
[[email protected] ~]# sync
[[email protected] ~]# sync
[[email protected] ~]# fdisk -l

2.在/mnt/下创建boot目录用于挂载boot

[[email protected] boot]# cd /mnt/
[[email protected] mnt]# ls -a
.  ..
[[email protected] mnt]# mkdir -pv boot
mkdir: created directory `boot‘
[[email protected] mnt]# ls -a
.  ..  boot
[[email protected] mnt]# mount
/dev/sda3 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
[[email protected] mnt]# fdisk -l /dev/sdb

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          13      104391   83  Linux
/dev/sdb2              14          75      498015   83  Linux
/dev/sdb3              76          88      104422+  82  Linux swap / Solaris
[[email protected] mnt]# mount /dev/sdb1 /mnt/boot/
[[email protected] mnt]# ls -a
.  ..  boot

3.手动安装grub

[[email protected] mnt]# grub-install --root-directory=/mnt /dev/sdb
Probing devices to guess BIOS drives. This may take a long time.
Installation finished. No error reported.
This is the contents of the device map /mnt/boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install‘.

(fd0)	/dev/fd0
(hd0)	/dev/sda
(hd1)	/dev/sdb

4.在/mnt/boot/目录下自动生成了grub目录

[[email protected] boot]# ls -a
.  ..  grub  lost+found

5.手动提供/mnt/boot/grub/grub.conf文件

default=0
timeout=5
title This is my linux
      root (hd0,0)
      kernel /vmlinuz
      initrd /initrd.img

6.将设备文件卸载

[[email protected] boot]# umount /mnt/boot/

7.挂起当前系统 重新新建一个虚拟机(使用一个已存在的虚拟硬盘,上面制作好的)

启动虚拟机

时间: 2024-10-05 22:46:49

自己手动破坏grub配置文件,手动安装grub的相关文章

Windows恢复Grub引导,用grub安装ubuntu

http://www.linuxidc.com/wap.aspx?nid=18027&p=&cp=&cid=http://m.blog.chinaunix.net/uid-22197900-id-359250.html http://zhidao.baidu.com/question/147900468.html?fr=ala&word=Grub%20%E5%AE%89%E8%A3%85%20ububtu&device=mobile&ssid=0&f

linux-内核编译、安装grub、安装initrd及内核,组装Linux

用户空间用于访问.监控内核的目录/proc, /sys 通过修改/proc,/sys中的文件控制内核参数(伪文件系统) /proc/sys: 此目录中的文件很多是可读写的,可修改其中内容(重定向的方式修改)/sys/: 某些文件可写 [[email protected] ~]# ll /proc/systotal 0dr-xr-xr-x 0 root root 0 Mar  4 22:48 abidr-xr-xr-x 0 root root 0 Mar  4 22:47 cryptodr-xr-

Ubuntu 16.04安装Grub Customizer替代Startup-manager(解决找不到menu.lst,GRUB配置简单介绍)

关于GRUB的介绍: http://baike.baidu.com/item/GRUB http://blog.csdn.net/bytxl/article/details/9253713 menu.lst位置: 从10.04开始就已经没有menu.lst文件了.其实编辑这个文件是关于设置启动项的,那么只需要配置GRUB即可. 配置GRUB2引导加载程序设置 16.04系统所使用的却是GRUB2,GRUB2是大多数Linux操作系统的默认启动加载程序.GRUB2代表GRand Unified B

grub修复和安装及linux系统裁剪

一.grub修复 1.模拟grub.conf损坏 #mv grub.conf grub.conf.bak 重启,直接进入命令行模式 grub> 2.手动配置grub grub>root (hd0,0) (使用find和tab键自动补全功能,找到grub所在分区) grub>kernel /vmlinuz....  ro root=/dev/root(系统自己找不到的话,只能自己凭记忆)quiet grub>initrd /initramfs....img grub>boot

rhel7 grub配置文件及排错 破解root密码

rhel7 grub配置文件及排错 RHEL7用了grub2,而不再是grub了 MBR分区的前446个字节存放的是系统引导程序grub,中间64字节是分区表,最后2个字节表示结束.那么什么是grub是怎么工作的呢? 简单的说,开机会经历以下几步: 1.BIOS自检,检查硬件: 2.激活MBR,MBR上不存在文件系统,可以视作硬件一部分,因此可以被直接读取 3.grub加载到内存,生成一个微系统,微系统内置了精简版的文件系统 4.通过这个微系统,他会去引导分区,比如默认一般是sda1上去找内核文

Grub配置文件错误丢失处理办法

先说说grub配置文件丢失解决办法,本人是Centos6.4. 正常情况下grub的配置文件的路径是:/boot/grub/grub.conf,我们模拟grub.conf丢失情况,可以把grub.conf改成grub.conf.bak,这样子这个文件就不生效了,或者你先备份然后把文件删了.重新启动计算机机会出现下面的画面: 然后输入:root (hd0,0)敲回车,如下图: 输入:kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/sda2 敲回

Linux CentOS6安装grub

安装grub的方式一: 这个方式是通过在一台新的硬盘上安装grub程序和简版的内核及/bash组成一个系统,来验证grub的安装结果. 1.添加新硬盘 2.为硬盘分区 1个用于/boot 1个用于swap分区 1个用于根文件系统 3.格式化文件系统 4.挂载/dev/sdb1准备安装grub程序 5.安装grub grub-install 6.将内核文件及initramdisk文件放入启动项目录中 7.获取或者创建grub配置文件 8.在根目录中创建FHS结构的目录 9.为新系统增加几个简单的命

安装grub到U盘分区,实现多系统引导

目录 1.分区工具及分区类型 1.1 显示分区表和分区信息 1.1.1 fdisk -l 1.1.2 gdisk -l 1.1.3 parted -l 1.2 常见分区类型 1.3 分区样例 1.3.1 BIOS/MBR example layout 1.3.2 UEFI/GPT example layout 1.3.3 BIOS/GPT example layout 2.gdisk 2.1 输入“?”获取帮助 2.2 备份和恢复分区表 2.3 Recover GPT header 3.part

linux系统中grub配置文件

安装了Windows和Linux时肯定要通过GRUB进行引导,GRUB引导器的主配置文件路径/boot/grub/grub.conf(也可能是/boot/grub2/grub.conf),以#号开头的是注释.基本上修改给默认启动的系统或等待时间是没啥问题的. 配置选项解释: # 注释行 timeout  标识默认等待的时间 default  默认的操作系统是由default一项来控制,default后的数字表明第几个是默认的,这里0表示第一个 splashimage  指定grub界面的背景图片