筆記本linux問題記錄
UEFI筆記本無法引導進入操作系統
現在的pc絕大多數都是通過uefi來引導操作系統的。有時候會因為折騰操作系統,無法啟動。修復的過程如下:
1-下載efi shell x64,解壓到u盤根目錄,注意u盤文件系統是fat32的,這樣才能被uefi識別。
2- 插到電腦上,進入bios,找到類似launch efi shell的項(華碩是這樣的,其他品牌的不知道),回車進去后,即可進入efi的shell命令交互界面。
3-執行map命令,查看設備映射關系,比如fs0: fs1: blk0:等。仔細觀察,分辨自己硬盤的映射的名字是什么。比如fs0表示某個磁盤的第0個分區。一般esp分區(efi system partition,efi系統分區)位于索引0。
4- 假設通過上面步驟已經確認了硬盤esp分區為fs0
則執行fs0: (注意有冒號)
然后執行ls 就會看到一個EFI的目錄
執行cd EFI,再執行ls,就會發現還有一個目錄(比如我的目錄名是debian,有些人的是ubuntu之類的), cd debian,再ls就發現一個grubx64.efi的文件。這個文件就是efi的引導文件了。執行grubx64.efi就可以引導進系統了。
5- 進入系統后,執行update-grub2 即可修復grub引導(如果分區還沒安裝grub,可以先執行grub-install /dev/sdX, 再執行update-grub2)
grub引導錯誤,無法進入系統
1-如果能到grub界面,但是不能引導操作系統,只是光標在閃爍。那么可以重啟,再次進入grub,然后按下c,進入grub命令行界面。如果pc連grub命令都進不了,可以使用帶grub的u盤進入grub命令界面。(例如使用debian的mini.iso結合dd命令或UltraISO讓u盤具備grub引導功能)
2-載入內核:
進入grub命令行后
執行linux (hd0,gpt1)/vmlinuz root=/dev/sdXn ro quiet
#執行上面命令的時候,要充分利用tab的命令補全功能。比如輸入 (hd 按下tab就會列出硬盤的分區信息。 可以通過分區大小來判斷。上面的(hd0,gpt1)/是放vmlinuz內核的分區(如果有/boot分區,就是/boot分區,如果沒有/boot分區,就是根分區)。后面的vmlinuz也是tab補全而來。
基本上敲grub命令就是不斷tab的過程,直接敲tab兩次可以列出所有的grub命令
上面droot=可以用類似/dev/sdXn的形式指明,也可以用uuid來指明,甚至可以用分區label來指明。
另外如果不想敲(hd0,gpt1),可以在執行linux和initrd兩個命令前輸入set root=(hd0,gpt1)
還有就是,grub如果不能識別分區,需要載入模塊.zh執行類似insmod btrfs 、insmod gzip之類命令來載入模塊,以便grub引導內核。
3- 載入initrd
執行initrd (hd0,gpt1)/initrd (輸入initrd,敲tab補全)
4 - 執行boot命令引導
5- 進入操作系統后,執行update-grub2修復grub引導. (如果分區還沒安裝grub,可以先執行grub-install /dev/sdX, 再執行update-grub2)
筆記本亮度不能保存
1-安裝各種驅動:
apt update
apt install firmware-linux-free firmware-linux firmware-linux-nonfree
2-重啟后,ls /sys/class/backlight/會發現多了intel_backlight之類的東西(我的是intel的核芯顯卡),此時可以通過echo 數字 >/sys/class/backlight/intel_backlight/brightness來調節亮度(以前通過/sys/class/backlight/acpi0*的調節范圍很小)
3-保存亮度
修改/etc/default/grub
- 在GRUB_CMDLINE_LINUX的值追加acpi_backlight=vendor (也可以填寫電腦品牌,如果此行已經有配置了,那么各個配置項需要用空格隔開)
- 在GRUB_CMDLINE_LINUX_DEFAULT追加 acpi_osi=Linux
ps:這兩行很相近,只是帶DEFAULT的行只作用于normal模式,不作用于recove模式 - update-grub2
禁用獨立顯卡
現在用的辦法是:https://my.oschina.net/xdzy/blog/1616407
以前用的辦法是(簡單):
查看是否有/sys/kernel/debug/vgaswitcheroo/switch 如果有則執行
echo IGD > /sys/kernel/debug/vgaswitcheroo/switch
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
查看是否關閉獨顯,可以執行cat /sys/kernel/debug/vgaswitcheroo/switch,如果看到顯示帶第二行有類似DIS::OFF字樣,說明獨立顯卡已經關閉了
如果不行,那就用BBSwitch了
KVM
解決nmcli dev 中的wlan0顯示unavailable
癥狀:
- nmcli device 中顯示wlan0顯示unavailable
- 使用nmcli device wifi搜不到無線網絡
解決辦法:
- 先確定是不是硬件或軟件禁用無線網卡了,執行rfkill list, 顯示兩個no,說明沒有禁用
- 檢查無線網卡沒有出現在/etc/network/interfaces或對應的.d目錄下。
- 禁用并停止dhcpcd。執行systemctl disable dhcpcd; systemctl stop dhcpcd 或者只針對wlan0禁用dhcpcd(在/etc/dhcpcd.conf添加denyinterfaces wlan0)
- 重啟networkManager服務systemctl restart NetworkManager,執行nmcli dev wifi就能搜索到無線網絡了
雜項
- 安裝laptop-mode-tools
- debian10下 搜狗拼音安裝后不能正常打字,也不知道是不是因為這個才解決的:apt install ~/下載/sogoupinyin*.deb 前安裝libqt4-declarative(解決執行sogou-qimpanel顯示缺libqtdeclarative.so.4)
浙公網安備 33010602011771號