日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Fedora分区扩容以及如何修复引导

發(fā)布時間:2023/12/18 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Fedora分区扩容以及如何修复引导 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

起因

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)/boot

3.如果出現(xiàn)包含img文件的目錄,即為linux系統(tǒng)所在目錄,也是grub2所在目錄

4.然后設(shè)置grub2啟動

set root=(hd0,msdos13)/boot/grub2 set prefix=(hd0,msdos13)/boot/grub2 insmod normal normal

5.便進(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。