Fedora分区扩容以及如何修复引导
起因
Linux分區(qū)過小,想將Windows下的一個不用的區(qū)分出一部分空間來進(jìn)行擴(kuò)容。直接在Windows下將D盤減小容量后,重啟出現(xiàn)grub rescue字樣,無法進(jìn)入系統(tǒng)。
解決過程
首先檢索grub rescue,結(jié)果很多,總結(jié)步驟如下:
1.先輸入ls回車,查看顯示的內(nèi)容。如:
(hd0) (hd0,msdos14) (hd0,msdos13) (hd0,msdos12)....2.然后找出哪個盤安裝了系統(tǒng),嘗試所有的,直到返回內(nèi)容不再是error: unknown filesystem.為止。
ls (hd0,msdos1)/boot ls (hd0,msdos2)/boot3.如果出現(xiàn)包含img文件的目錄,即為linux系統(tǒng)所在目錄,也是grub2所在目錄
4.然后設(shè)置grub2啟動
set root=(hd0,msdos13)/boot/grub2 set prefix=(hd0,msdos13)/boot/grub2 insmod normal normal5.便進(jìn)入之前的引導(dǎo)界面了。
但是這只是臨時的辦法,還需要修復(fù)grub之后才能完全解決這一問題,否則重啟還會出現(xiàn)一樣的界面。這里我因?yàn)檫€要進(jìn)行擴(kuò)容,所以就沒有直接修復(fù)grub,而是先研究擴(kuò)容去了。
既然grub的問題可以解決,那么我就更大膽了,直接在windows下,用diskdirector將swap分區(qū)移動到空閑分區(qū)右邊,使得空閑分區(qū)與linux主分區(qū)相鄰,便于之后的擴(kuò)容。
但是這里一個很尷尬的問題是,diskdirector沒法直接對linux的主分區(qū)進(jìn)行擴(kuò)容!在容量的設(shè)置上是鎖死的!不知道是由于不支持ext4的原因還是本就如此。
沒辦法,只好換別的工具了。
在之前查如何擴(kuò)容時,有資料說用fdisk是無法直接進(jìn)行擴(kuò)容的,還提到了一個工具叫Gparted,可以用其提供的LiveCD進(jìn)行U盤啟動從而調(diào)整分區(qū)大小,于是我如法炮制,很輕松地在U盤系統(tǒng)里將主分區(qū)完成了擴(kuò)容。
正當(dāng)我滿心歡喜打算按照之前的方法進(jìn)入系統(tǒng)再修復(fù)grub的時候,發(fā)現(xiàn)Linux系統(tǒng)卡在“Reached Target”這樣一句話,無法進(jìn)入系統(tǒng),這真是當(dāng)頭一桶涼水。
Reached target Initrd File Systems Reached target Initrd Default Target進(jìn)行檢索之后發(fā)現(xiàn)如果等幾分鐘,系統(tǒng)會出現(xiàn)別的錯誤信息,我的大致是
ALERT! /dev/disk/by-uuid/xxxxxxxxx does not exist. Dropping to a shell initramfs:_沒辦法,繼續(xù)檢索,試驗(yàn)解決方案。
在這期間,我也明白了這是什么緣故。因?yàn)槲腋淖兞藄wap分區(qū)的大小和位置(之前在windows下移動了swap,也改變了大小),導(dǎo)致swap分區(qū)的uuid失效了,而linux啟動過程中是會按照之前記錄的swap分區(qū)的uuid進(jìn)行掛載等操作的,比如/etc/fstab文件里就進(jìn)行了掛載操作,但是應(yīng)該不止于此,因?yàn)槲以趌iveCD里改了這個文件也并沒有修復(fù)問題。
那么最終的解決方案是在這里,Ubuntu下的代碼為:
sudo mount /dev/sda1 /mnt sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt update-initramfs -u update-grub reboot我又滿心歡喜地去LiveCD里進(jìn)行如法炮制,結(jié)果在chroot的時候又報錯了,提示執(zhí)行文件格式不正確。
好吧,查了一會之后發(fā)現(xiàn)是Gparted提供的liveCD是32位的,不能對64位系統(tǒng)進(jìn)行chroot操作…
沒辦法,找別的LIVECD吧。在找的過程中,發(fā)現(xiàn)一個很好的網(wǎng)站,The LiveCD List · The LiveCD List,列出了一系列的LiveCD和其大致大小以及用途,通過RESCUE標(biāo)簽和是否有64位進(jìn)行篩選后,再進(jìn)行U盤制作,啟動測試,發(fā)現(xiàn)有些無法正常啟動,OpenSUSE的RESCUE鏡像無法進(jìn)入桌面,CentOS直接進(jìn)入也會黑屏,還是調(diào)成Basic Graphic模式才能進(jìn)。
搞了這么久總算快弄完了,在CentOS里輸入chroot,成功!但是,接下來兩命令又報錯…
好吧,這是Ubuntu的命令,我得找Fedora下等價的,如下:
dracut -f /boot/initramfs-currentimage grub2-mkconfig -o "$(readlink /etc/grub2.conf)"然后重啟,還得再輸一遍
set root=(hd0,msdos13)/boot/grub2 set prefix=(hd0,msdos13)/boot/grub2 insmod normal normal終于,成功進(jìn)入了系統(tǒng)!
之后一點(diǎn)收尾工作,修復(fù)grub2,命令如下(因?yàn)槲业南到y(tǒng)在第二塊硬盤上,所以是sdb,另外這里不需要寫數(shù)字,比如sdb2之類的):
sudo /sbin/grub2-install /dev/sdb感想
像grub rescue這種基礎(chǔ)的問題,Baidu就能很好提供解決方案了,但是像找update-initramfs和update-grub在Fedora下的等價命令,還是得靠Google,用AOL也行。
以前弄過Windows PE做的U盤系統(tǒng),現(xiàn)在都能做Linux的U盤系統(tǒng)了,感覺自己這么幾年還是學(xué)到了一點(diǎn)東西嘛!
總結(jié)
以上是生活随笔為你收集整理的Fedora分区扩容以及如何修复引导的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html简洁漂亮的个人简历,个人主页,个
- 下一篇: 孙陶然-36条军规