grub2安装或修复 - zbunix/building GitHub Wiki
清空你的回收站 $HOME/.local/share/Trash/ cd .Trash && rm -rf * 把安装的软件的备份也删除,磁盘空间不够用了,把apt的缓存空间清空 apt-get clean root@android-work2:/home/os-weizb# du -sh /var/* | sort -n 0 /var/lock 2.0M /var/backups 4.0K /var/crash 4.0K /var/games 4.0K /var/local 4.0K /var/mail 4.0K /var/opt 6.1M /var/log 168K /var/spool 207M /var/lib 400K /var/tmp 408K /var/run 549M /var/cache 看看哪个文件系统满了 root@android-work2:/home/os-weizb# df -ah 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda1 30G 4.1G 24G 15% / proc 0 0 0 - /proc none 0 0 0 - /sys none 0 0 0 - /sys/fs/fuse/connections none 0 0 0 - /sys/kernel/debug none 0 0 0 - /sys/kernel/security none 7.9G 224K 7.9G 1% /dev none 0 0 0 - /dev/pts none 7.9G 1.4M 7.9G 1% /dev/shm none 7.9G 408K 7.9G 1% /var/run none 7.9G 0 7.9G 0% /var/lock none 7.9G 0 7.9G 0% /lib/init/rw /dev/sda3 1.8T 21G 1.7T 2% /home /dev/sda4 1.8T 196M 1.7T 1% /nwd-data binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc gvfs-fuse-daemon 0.0K 0.0K 0.0K - /home/os-weizb/.gvfs
tar -cvpjf /home/ubt-server-amd64.bz2 --exclude=/lost+found --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/home/* --exclude=/nwd-data/* /
mount /dev/sda1 /mnt tar -xvpjf /home/ubt-server-amd64.bz2 -C /mnt
-
进入Grub2 rescue 模式
原因分析:
- boot分区uuid改变---->grub模块和配置文件grub.cfg无法定位
- grub模块和配置文件grub.cfg受损无法启动时修复
- root分区uuid改变---->造成的不能正常启动,只能进入grub rescue模式的修复
grub rescue > ls #查找grub的配置文件,因为分区表被破坏,用ls命令列出所有分区. 找到你安装Ubuntu的分区, 比如(hd0,7) grub rescue > set root=(hd0,7) #设置root所在分区路径 grub rescue > set prefix=(hd0,7)/boot/grub #设置grub启动文件所在路径 grub rescue > insmod normal grub rescue > normal #回到普通模式 grub rescue>set grub rescue>prefix=(hd?,?)/grub grub rescue>root=hd?,? grub rescue>set root=hd?,? grub rescue>set prefix=(hd?,?)/boot/grub grub rescue>set grub rescue>root=hd?,? grub rescue>prefix=(hd?,?)/boot/grub grub rescue>insmod /boot/grub/normal.mod grub rescue>normal 这时就可以调出 /boot/grub/grub.cfg,修改相应uuid, 改到命令行下 grub>insmod /boot/grub/linux.mod grub>set root=hd?,? grub>linux /boot/vmlinuz-*** root=/dev/sd?? grub>initrd /boot/initrg.img-**** 进入系统
-
chroot方案完全彻底修复grub2---使用ubuntu启动U盘或者ubuntu启动光盘启动进入修复模式
apt-get install grub-pc
** 创建分区和创建分区uuid
gdisk /dev/sda
** 格式化分区然后拷贝root根分区所有文件解压到新的分区里, root分区和boot分区二合一
mkfs.ext4 /dev/sda1 mount -t ext4 /dev/sda1 /mnt cd /mnt tar xvf ubuntu10.04-server-amd64-bak.tar
** 安装grub2到硬盘
1. 掛載重要的虛擬檔案系統: mount --bind /dev /mnt/dev mount --bind /dev/pts /mnt/dev/pts mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys 2. Chroot 至您的標準系統裝置: chroot /mnt 3. 重建/boot/grub/grub.cfg, 解决系統中沒有 /boot/grub/grub.cfg 或其內容不正確 update-grub2 3. 重新安裝GRUB 2 grub-install /dev/sda 4. 驗證安裝 grub-install --recheck /dev/sda 5. 修改/etc/fstab 由于分区表类型的修改,各挂载点所对应的分区也必然会有所变化 6. 让网卡名固定为eth0 rm /etc/udev/rules.d/70-persistent-net.rules 7. 退出 chroot 按下鍵盤之 CTRL-D 8. 卸載虛擬檔案系統: umount /mnt/dev/pts umount /mnt/dev umount /mnt/proc umount /mnt/sys 9. 卸載最後的裝置: umount /mnt 10. 重新開機 reboot
-
恢复GPT类型分区的grub2主引导记录
恢复GPT类型分区的grub2主引导记录,如果直接执行命令 grub-install /dev/sda 不能成功,可按照如下操作: 在系统配置文件:/etc/default/grub 添加一行:GRUB_PRELOAD_MODULES="part_msdos" 执行命令: grub-install --force /dev/sda 便可解决问题!
-
GPT硬盘启动
windows 的 gpt 支持印象里仅止于读写,而不能启动。
1.windows对GPT的支很糟糕,如果你想要在GPT硬盘下引导windows,需要先将主板换为罕见的EFI主板,还要将系统换为64位windows,至于windows对GPT的支持,请参考网上的资料,在下面wikipedia的资料上就有。 2.ntfs文件系统和ext3/ext4文件系统的GUID是完全一样的(不知道为什么),所以有些分区工具无法将这两种文件系统区分开来,尤其是在windows下。对于windows分区和ext4分区共存的硬盘下,一定要注意这一点。