一段時間以來,我遇到了 Linux Ubuntu 18.04 啟動速度非常慢的問題(有時需要 5-10 分鐘)。奇怪的是,這似乎是從我編輯交換文件或/和我使用 Gparted 開始的。命令top
和swapon -s
命令顯示交換檔案正在工作(我保留了 4 GB)。
但下面的命令顯示出一些奇怪的東西:
sudo findmnt --verify --verbose
除了以下之外,所有線路都很好警告出現:
[W] non-bind mount source /swapfile is a directory or regular file
該行到底是什麼意思?這是否意味著它無法掛載交換文件? (實際上最終它正在發揮作用)。所以我想知道我的 fstab 檔案是否有問題。
cat /etc/fstab
交換線給出以下內容:
/swapfile none swap sw 0 0
我聽說在啟動期間查找和安裝交換文件的問題會減慢整個過程。交換文件是從主磁碟運行的,所以我想知道是否應該像這樣更改上面的行:
UUID=xx9999x9-9x99-9xx9-9999-xx9x9xx99xx9/swapfile none swap sw 0 0
其中UUID是硬碟。我沒有使用任何分割區。
Systemd-analyze Blame 給出以下輸出:
systemd-analyze blame | head
17.041s dev-sda1.device
11.192s dev-loop9.device
11.056s dev-loop16.device
10.964s dev-loop14.device
10.704s dev-loop6.device
10.703s dev-loop1.device
10.703s dev-loop7.device
10.703s dev-loop2.device
10.702s dev-loop4.device
10.687s dev-loop13.device
使用後sudo apt-get purge snapd
如下:
systemd-analyze blame | head
7.902s dev-sda1.device
7.152s NetworkManager-wait-online.service
5.121s ufw.service
4.792s systemd-udevd.service
4.539s docker.service
4.298s accounts-daemon.service
4.152s systemd-journal-flush.service
3.970s apparmor.service
3.808s avahi-daemon.service
3.751s bluetooth.service
該命令sudo blkid
給出一行(我匿名了 ID)。之前有很多行 /dev/loopX: TYPE="squashfs"
/dev/sda1: UUID="xx9999x9-9x99-9xx9-9999-xx9x9xx99xx9" TYPE="ext4" PARTUUID="9999xx999-01"
參數截圖Disks
:
系統日誌的輸出:
grep -i FPDMA /var/log/syslog*
[ 48.245514] ata6.00: failed command: READ FPDMA QUEUED
[ 48.247916] ata6.00: failed command: READ FPDMA QUEUED
[ 48.250316] ata6.00: failed command: READ FPDMA QUEUED
[ 48.252774] ata6.00: failed command: READ FPDMA QUEUED
以下是 Gparted 的截圖:
另一個觀察:當我啟動電腦時,螢幕會黑屏 5-10 分鐘。然後經過漫長的等待,它出現了帶有筆記型電腦標記的標題畫面。從那裡開始,一切似乎都很順利。只是想說這一點,因為它可能表明啟動過程中哪裡出了問題。我想知道引導程式(Grub)是否會被破壞,因為我之前在這個系統上運行過雙重引導,並且最近刪除了 Windows 7。
檔案系統表
sudo cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=ae2158a5-6f28-4da8-8082-cc6d6bb20ed2 / ext4 errors=remount-ro 0 1
/swapfile none swap sw 0 0
sudo blkid
/dev/sda1: UUID="ae2158a5-6f28-4da8-8082-cc6d6bb20ed2" TYPE="ext4" PARTUUID="630bb523-01"
BIOS版本
sudo dmidecode -s bios-version
1.03.05
主機板資訊:
TUXEDO Book DC1504
Model: W650SJ
Clevo CO
sudo dmidecode -t 2
# dmidecode 3.1
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: Notebook
Product Name: W65_67SJ
Version: Not Applicable
Serial Number: Not Applicable
Asset Tag: Tag 12345
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Not Applicable
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
我正在運行 Ubuntu 18.04.5 LTS。
蠐螬
此命令dpkg -l grub* | grep ii
給出以下輸出:
ii grub-common 2.02-2ubuntu8.18 amd64 GRand Unified Bootloader (common files)
ii grub-gfxpayload-lists 0.7 amd64 GRUB gfxpayload blacklist
ii grub-pc 2.02-2ubuntu8.18 amd64 GRand Unified Bootloader, version 2 (PC/BIOS version)
ii grub-pc-bin 2.02-2ubuntu8.18 amd64 GRand Unified Bootloader, version 2 (PC/BIOS binaries)
ii grub2-common 2.02-2ubuntu8.18 amd64 GRand Unified Bootloader (common files for version 2)
感謝您的幫忙!
答案1
當您「編輯」/swapfile 時,您可能犯了錯誤。
“似乎自從我編輯交換文件以來就開始了”
“/swapfile 是目錄或常規檔案”
這正確的建立/調整大小為 4G /swapfile 的過程...
筆記:命令使用不當dd
可能會導致資料遺失。建議複製/貼上。
sudo swapoff -a # turn off swap
sudo rm -i /swapfile # remove old /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
sudo chmod 600 /swapfile # set proper file protections
sudo mkswap /swapfile # init /swapfile
sudo swapon /swapfile # turn on swap
free -h # confirm nnG RAM and 4G swap
確認 /etc/fstab 中的這一行...並確認沒有其他「交換」行...
/swapfile none swap sw 0 0
reboot # reboot and verify operation
更新#1:
您的磁碟存在一些 NCQ 錯誤。
本機命令佇列 (NCQ) 是串行 ATA 協定的擴展,允許硬碟內部優化接收到的讀寫命令的執行順序。
編輯sudo -H gedit /etc/default/grub
並更改以下行以包含此額外參數。然後將sudo update-grub
更改寫入磁碟。重啟。監視器掛起,並觀察/var/log/syslog
或dmesg
是否有持續的錯誤訊息。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash libata.force=noncq"
如果這不能解決問題,我們會回來對磁碟進行壞塊處理。
更新#2:
由於您仍然遇到問題,我們將這樣做來解決啟動時間緩慢的問題。
編輯 /etc/default/grub.conf
改變這一行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash libata.force=noncq"
對此:
GRUB_CMDLINE_LINUX_DEFAULT="libata.force=noncq"
然後:
sudo update-grub
reboot
現在,在重新啟動期間,螢幕上將顯示大量文字。當它停止或暫停時,螢幕上的最後一項將為我們提供有關問題所在的線索。拍一張清晰的照片並將其上傳到您的問題中,然後告訴我。
您的 SMART 數據沒有顯示任何壞塊問題。它確實顯示了許多讀取錯誤,NCQ 補丁可能已經解決了這些錯誤。
更新#3:
筆記:您應該有良好的備份,以防出現問題。
我們將更新您的 ramdisk,並重新安裝 GRUB。
ls -al /boot/initrd*
#記下這些檔案的大小
sudo update-initramfs -c -k $(uname -r)
# 重新建立ramdisk文件
ls -al /boot/initrd*
# 注意檔案大小是否已更改
reboot
# 看看現在啟動是否更快
dpkg -l grub* | grep ii
# 顯示目前已安裝的grub檔案包
sudo apt install --reinstall package_name_here
# 對於上面列出的每個 GRUB 軟體包
sudo update-grub
# 更新GRUB
reboot
# 看看現在啟動是否更快
更新#4:
要檢查是否有較新的 BIOS,您必須在以下位置建立使用者帳戶:https://www.tuxedocomputers.com/index.php?module=account
若要聯絡 Tuxedo 支持,請致電電話:+4982189982992,然後發送電子郵件至https://www.tuxedocomputers.com/en/Contact.tuxedo