一段时间以来,我遇到了 Linux Ubuntu 18.04 启动非常慢的问题(有时需要 5-10 分钟)。奇怪的是,自从我编辑 Swapfile 或/和使用 Gparted 以来,这种情况似乎就开始了。命令top
和swapon -s
命令显示 Swapfile 正在运行(我保留了 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 以来就已经开始”
“/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。
更改此行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash libata.force=noncq"
更改为:
GRUB_CMDLINE_LINUX_DEFAULT="libata.force=noncq"
然后:
sudo update-grub
reboot
现在,重启期间屏幕上会显示大量文本。当它停止或暂停时,屏幕上的最后一项会给我们提供问题所在。拍一张清晰的照片,并将其上传到您的问题中,然后 ping 我。
您的 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