linux添加文件后无法启动,linux安装后grub无法启动

解决办法如下:

使用启动优盘启动后

1、查看分区情况

sudo fdisk -lu /dev/sda

显示如下:

Disk /dev/sda: 500.1 GB, 500107862016 bytes

255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xde6c93b8

Device Boot      Start         End      Blocks   Id  System

/dev/sda1              63    58589054    29294496   83  Linux

/dev/sda2        58589184   976773119   459091968    5  Extended

/dev/sda5        58591232   967903231   454656000   83  Linux

/dev/sda6       967905280   976773119     4433920   82  Linux swap / Solaris

2、将system为linux的分区挂载

sudo mount /dev/sdax /mnt     #x为/所在的分区

sudo mount /dev/sdax /mnt/boot     #当/boot为单独分区

若没有/mnt/boot,可以使用mkdir创建

3、修复grub

sudo grub-install --root-directory=/mnt /dev/sda

参考资料:

http://blog.sina.com.cn/s/blog_a2d4803001013vqk.html

当使用grub-install出现提示,没有文件或命令时,可尝试以下方法:

原因:grub没有在系统所在分区找到命令文件

1、重启进入grub rescue    #出错信息为error: file not found

2、使用set命令查看prefix和root

3、使用ls命令查看硬盘分区    #显示(hd0,msdos1)等

(hd0,msdos1)相当于sda1,以此类推。

4、逐个硬盘分区查找系统和grub命令文件所在位置

系统查找:ls (hd……)/    #注意不要丢掉'/'

#若结果出现许多系统文件,则可能为系统所在分区

#但绝大多数情况下,由于安装系统时已经选择了分区,因此此步主要是验证

grub命令文件查找:ls (hd……)/boot/grub

#若出现大量mod文件,则为grub命令文件所在位置

5、根据前一步的结果设置prefix和root

set prefix=(hd……)/boot/grub    #grub命令文件所在位置

set root=(hd……)    #系统文件所在分区

6、insmod normal    #加载normal模块

7、normal    #进入normal模式

8、insmod linux    #加载linux命令模块

9、linux  /boot/vmlinuz-……  root=/dev/sdXY  ro    #载入linux核心

#vmlinuz-……文件应该在系统文件/boot里,可使用tab自动补全

#sdXY为系统所在分区,例如sda1。应根据前面查找结果确定

#不要丢掉最后的'ro'

10、initrd /boot/initrd-……    #加载initrd

11、boot    #启动系统

12、前面所做修改实际上并没有写入grub,因此需在启动系统保存设置

可使用updata-grub和grub-install修复

参考资料:

https://help.ubuntu.com/community/Grub2/Troubleshooting

附:除以上方法,可使用boot-repair

boot-repair是一个图形化界面的grub修复工具

建议下载iso文件,刻录启动盘或制作启动u盘

具体信息参考:https://help.ubuntu.com/community/Boot-Repair

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值