我正在尝试将我的/boot
文件夹从/
分区移动到/dev/sdb
. 以下脚本:
parted -s /dev/sdb mklabel msdos mkpart primary ext2 1M 100% set 1 boot on
mkfs.ext2 /dev/sdb1
mkdir /mnt/boot
mount /dev/sdb1 /mnt/boot
cd /boot
find . -depth -print0 | \
cpio --null --sparse --make-directories --pass-through --verbose /mnt/boot
cd /
umount /mnt/boot
mv /boot /boot.orig
mkdir /boot
echo "/dev/sdb1 /boot ext2 ro 0 2" >>/etc/fstab
mount /dev/sdb1 /boot
parted /dev/sda set 1 boot off
grub-install /dev/sdb
update-grub
reboot
Run Code Online (Sandbox Code Playgroud)
产生这个错误:
error: file '/boot/grub/i386-pc/normal.mod' not found.
grub rescue>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
编辑:如果原始/boot
目录位于单独的分区上(例如/dev/sda2
),上面的脚本似乎可以正常工作。仅当它与/
分区 ( /dev/sda1
)位于同一分区时才会失败。
我已经在 Ubuntu 13.04 和 Fedora 19 上尝试了上述脚本的很多很多变体,但还没有避免这个file '/boot/grub/i386-pc/normal.mod' not found
错误。
还有其他想法吗?
问题是 grub 正在寻找/boot/grub/i386-pc/normal.mod
新分区。由于该分区的根现在安装在/boot
,该文件当前位于/grub/i386-pc/normal.mod
新分区上。您要么需要重新安装grub
到该分区,或者作为临时措施,您可以通过调用创建一个符号链接ln -s . /boot/boot
,这将允许在任一名称下找到该文件。
归档时间: |
|
查看次数: |
9958 次 |
最近记录: |