我自己在服务器上装了centos 6.5系统,默认用的就是UEFI,没有注意可以只用GRUB,接着问题就出现了,我在服务器内安装了另外一块带grub启动系统的硬盘,

这个硬盘启动系统后,如果去掉此块硬盘,再重新启动,总是识别不出来centos 6.5的UEFI,这个可以通过启动主板的UEFI,然后用UEFI的命令:

mount fs0
fs0:
cd EFI
cd redhat
grub.efi
文件夹名称可能不准,大概是这样就可以手动启动系统了,另外还可以通过插入系统盘,upgrade一下就可以了,不用每次手动,也不会丢失数据,但是总觉得

这样不是很好。所以我就有了将UEFI-GPT回退为MBR的想法。

谷歌总是很牛x,所以我得到的结果是用gdisk,我启动另一个系统,挂载上centos 6.5的硬盘,然后按照google上的步骤:

  • 1
    Click "Applications." Point to "Accessories," then click "Terminal." Input the following into Terminal: sudo fdisk -l
  • 2
    Press "Enter" to see the disk devices connected to the computer. The device with the asterisk next to it is the boot device. Write down the filename (for example, /dev/sda) assigned to the disk.
  • 3
    Input the following into Terminal: sudo apt-get install gdisk. Press "Enter" to install the partitioning tool to Ubuntu.
  • 4
    Input "sudo gdisk" into Terminal, then press "Enter" to run gdisk as a superuser. Input the name assigned to the boot device, then press "Enter" again.
  • 5
    Press "r," then hit "Enter," to switch to the recovery and transformation options. Press "g," then press "Enter," to select the option to convert GPT to MBR on Linux.
  • 6
    Press "
    w," then press "Enter," to convert GPT to MBR on the primary partitions. Press "y," then "Enter," to finalize and exit.
操作完成后,重启发现系统起不来,手动引导UEFI也不行了。

人类一思考,上帝就发笑,可是俺思考后发现还是能拯救的,

先提前说明,centos 6.5安装的时候,是分了三个区的,sda1 -- UEFI所在区,是fat32,sda2 -- 在fdisk -l下显示是NTFS(但实际上是ext4)的存储实际系统和数据的分区,

sda3 -- swap 分区。

我进入U盘启动的系统后,把sda1分区挂载到mnt目录内,发现在efi->redhat目录内,存在一个文件grub.conf,相比经常把玩系统的人都知道这个是干嘛的。就是有了这个,我才有了希望。

下面就是拯救的具体步骤:

1、mount上sda1,然后拷贝出grub.conf留作后用,切忌!然后umount

2、使用fdisk将sda1修改为83-linux,sda2也修改为83-linux,并且把sda1设置为启动分区。

大致命令流程如下:
fdisk /dev/sda
t
1
83

t
2
83

a
1
3、将sda1做成ext3,因为他是fat32

命令:mkfs.ext3 /dev/sda1

4、mount上sda1和sda2,我这里sda1在/mnt,sda2在/sda2 ,给sda1安装grub,grub-install --root-directory=/mnt /dev/sda,这样grub就装好了

5、 把备份的grub.conf拷贝到/mnt/boot/grub目录下,并且做一个软连接,menu.lst指向grub.conf,命令是:ln -s grub.conf menu.lst

6、将/sda2/boot/目录下在grub.conf内用到的文件,一个是kernel会用到的,一个是initrd会用到的,拷贝到/mnt/boot目录下

7、修改/mnt/boot/grub/grub.conf,把root (hd0, 1)这个改为root (hd0,0)

8、保存,sync,umount,卸载硬盘,重新启动就可以了。



更多相关文章

  1. 在linux操作系统下,进行j2ee的web开发,是怎么一个过程和体验?
  2. 如何安装linux系统
  3. fedora(linux)创建系统服务 程序开机自启 后台运行
  4. [Linux] 总结各系统 双网卡绑定
  5. 如何在windows 10的linux子系统中启动jupyter笔记本?
  6. Linux系统下Tar文件安装方法
  7. Linux系统的运行级的概念
  8. 移动硬盘安装Ubuntu系统(UEFI引导)的一些记录
  9. 假如你不小心干掉了系统,你该怎么办?(一次手贱的记录 ~ Ubuntu and

随机推荐

  1. 第三部分:Android 应用程序接口指南---第
  2. android 关于listview item设置高度的问
  3. Android Sensor传感器系统架构初探
  4. USB选择PTP功能时,如何同时显示内置、外置
  5. 初识Android
  6. Android智能电视应用程序开发浅谈(一)
  7. Linux与Android的关系
  8. android默认系统日期、时间、时区更改
  9. android 上面js java数据互传
  10. 【Android】Android开发规范详解