linux 修复grub及mount 命令的妙用
2014-09-05 16:26
447 查看
前天重装了操作系统,grub也随之被覆盖,为了恢复启动,我拿了一张ubuntu的live cd启动,进入linux后,进入命令行恢复grub。
首先要挂载原来的/分区
sudo mkdir /mnt/root
sudo mount /dev/sda7 /mnt/root
sudo mount -t proc none /mnt/root/proc
sudo mount -o bind /dev /mnt/root/dev
如果不知道/分区的设备名称,可以使用sudo fdisk -l 查看。
使用chroot进入原来的/分区
chroot /mnt/root /bin/bash
source /etc/profile
恢复grub
sudo grub-install --no-floppy /dev/sda
失败,提示“The file /boot/grub/stage1 not read correctly”
从网上搜索了一下相关的文章,发现是分区有变化引起的,跟文件fstab和mtab有关。
编辑/etc/mtab发现/的分区设备不对,修改对后,重新运行
grub-install /dev/sda成功。
=================================================================================
mount --bind 的妙用
在固件开发过程中常常遇到这样的情况:为测试某个新功能,必需修改某个系统文件。而这个文件在只读文件系统上(总不能为一个小小的测试就重刷固件吧),或者是虽然文件可写,但是自己对这个改动没有把握,不愿意直接修改。这时候mount --bind就是你的好帮手。
假设我们要改的文件是/etc/hosts,可按下面的步骤操作:
1. 把新的hosts文件放在/tmp下。当然也可放在硬盘或U盘上。
2. mount --bind /tmp/hosts /etc/hosts
测试完成了执行 umount /etc/hosts 断开绑定。
如果我需要在/etc下面增加一个exports文件怎么办?原来没有这个文件,不能直接bind。我们有两个方法:
方法1:绑定整个/etc目录,绑定前先复制/etc
# cp -a /etc /tmp
# mount --bind /tmp/etc /etc
此时的/etc目录是可写的,所做修改不会应用到原来的/etc目录,可以放心测试。
方法2:挂载ramfs到/etc,同样要先复制/etc
挂载ramfs
# mkdir /tmp/etc
# mount -t ramfs none /tmp/etc
复制/etc,这里我们不能用cp -a,改用tar
# cd /etc
# tar cf - . |(cd /tmp/etc; tar xf -)
# cd /
覆盖/etc
# mount --move /tmp/etc /etc
测试完了记着 umount /etc
首先要挂载原来的/分区
sudo mkdir /mnt/root
sudo mount /dev/sda7 /mnt/root
sudo mount -t proc none /mnt/root/proc
sudo mount -o bind /dev /mnt/root/dev
如果不知道/分区的设备名称,可以使用sudo fdisk -l 查看。
使用chroot进入原来的/分区
chroot /mnt/root /bin/bash
source /etc/profile
恢复grub
sudo grub-install --no-floppy /dev/sda
失败,提示“The file /boot/grub/stage1 not read correctly”
从网上搜索了一下相关的文章,发现是分区有变化引起的,跟文件fstab和mtab有关。
编辑/etc/mtab发现/的分区设备不对,修改对后,重新运行
grub-install /dev/sda成功。
=================================================================================
mount --bind 的妙用
在固件开发过程中常常遇到这样的情况:为测试某个新功能,必需修改某个系统文件。而这个文件在只读文件系统上(总不能为一个小小的测试就重刷固件吧),或者是虽然文件可写,但是自己对这个改动没有把握,不愿意直接修改。这时候mount --bind就是你的好帮手。
假设我们要改的文件是/etc/hosts,可按下面的步骤操作:
1. 把新的hosts文件放在/tmp下。当然也可放在硬盘或U盘上。
2. mount --bind /tmp/hosts /etc/hosts
测试完成了执行 umount /etc/hosts 断开绑定。
如果我需要在/etc下面增加一个exports文件怎么办?原来没有这个文件,不能直接bind。我们有两个方法:
方法1:绑定整个/etc目录,绑定前先复制/etc
# cp -a /etc /tmp
# mount --bind /tmp/etc /etc
此时的/etc目录是可写的,所做修改不会应用到原来的/etc目录,可以放心测试。
方法2:挂载ramfs到/etc,同样要先复制/etc
挂载ramfs
# mkdir /tmp/etc
# mount -t ramfs none /tmp/etc
复制/etc,这里我们不能用cp -a,改用tar
# cd /etc
# tar cf - . |(cd /tmp/etc; tar xf -)
# cd /
覆盖/etc
# mount --move /tmp/etc /etc
测试完了记着 umount /etc
相关文章推荐
- Linux:挂接(mount)命令的使用方法
- linux 修复grub
- linux 磁盘修复相关命令
- linux mount命令的基本用法
- 修复linux下受损的硬盘文件,e2fsck命令详解
- Linux的mount命令简介
- 如何利用Grub命令启动损坏的Linux系统
- Linux:挂接(mount)命令的使用方法
- 修复Linux、Windows双系统中损坏的Grub
- Linux下使用mount命令挂载CDROM
- 使用Linux安装光盘修复GRUB
- Linux操作系统下GRUB启动菜单的修复方法
- 通过LINUX安装盘修复grub双重引导菜单
- 《mount的艺术》-linux命令五分钟系列之十四
- 系统安全:实用技巧之解析Linux系统GRUB故障修复
- 使用Grub进行Linux的硬盘安装与修复
- Linux:挂接(mount)命令的使用方法
- Linux的mount命令简介
- Linux:挂接(mount)命令的使用方法
- Linux:mount命令挂载共享文件