我不记得问题是什么时候开始出现的,但很可能是在我将 VMWare Ubuntu 映像移动到外部 SSD 以便我可以在我的任何 PC 上使用操作系统时。谷歌上关于这个问题的链接并不多,但出现的链接是关于fstab
. 例如,慢启动 - 什么是“A start job is running for dev-disk-by...”?- OpenSUSE 论坛。
提到必须删除交换分区并重新创建它。
我可以尝试使用 Gparted 来做到这一点,但我主要担心的是会丢失我在 Ubuntu 中的当前设置,因为我不完全确定如果我按照线程中的建议弄乱了交换会发生什么。任何人都可以提供帮助?
Pyr*_*yph 155
如果你得到
正在为 dev-disk-by 运行启动作业...
在每次引导期间有 90 秒的延迟,请完成以下步骤:
使用软件中心安装 GParted
打开 GParted 并查看 Ubuntu 当前使用的分区
使用以下行编辑 fstab 文件。
须藤 -H gedit /etc/fstab
如果您有当前未使用的设备,请#
在该行的开头插入一个和一个空格将其注释掉。
如果您将外部设备配置为自动挂载(通常带有一个nofail
选项),请将其添加到设备的选项中:x-systemd.device-timeout=1ms
。这会将启动时要挂载的设备的等待时间设置为默认 90 秒的 1ms。例子:
/dev/sdg1 /media/backup jfs nofail,x-systemd.device-timeout=1ms 0 0
Run Code Online (Sandbox Code Playgroud)
保存 fstab 文件(最好事先保存备份)。通过运行测试您的 fstab 文件mount -a
。如果出现任何语法错误,该命令会显示出来。
重新启动,启动作业不应再次出现。
Mat*_*aro 48
由于gparted live迫使我删除并重新初始化我的交换,因此在我的 VM 上调整我的主分区大小后,我遇到了同样的问题。这导致设置了与 fstab 文件不匹配的新 UUID。
为了避免这个问题,/etc/fstab
你可以
sudo blkid
调整主分区大小后,将交换 UUID 替换为新的 UUID(运行以找到它)。
或者,在调整主分区大小之前(或之后)注释掉交换分区。
我会推荐前者,因为这是操作系统的设置方式。
cpd*_*pd1 41
看起来这个问题是由于这样一个事实,即使 fstab 有一个交换条目,实际上没有一个。我使用 GParted 调整分区大小并创建了一个新的 Swap。然后我将 UUID 复制到 fstab 文件中...
Kal*_*mér 19
就我而言,我之前一直在使用加密交换,并且启动作业提到了/dev/mapper/cryptswap1
. 为了解决这个问题/etc/crypttab
,除了威廉麦克唐纳的回答中描述的步骤之外,我还必须删除文件。
int*_*ika 13
主要情况:
您需要检查这些文件下的 UUID(在其他答案中详细回答...)
/etc/crypttab
/etc/fstab
/etc/grub.d/40_custom
/boot/grub2/grub.cfg
Run Code Online (Sandbox Code Playgroud)
替代情况 I - Udev:
这可能是由udev引起的,如果您有一个不打算在启动时运行的规则脚本/etc/udev/rules.d/
,如果脚本失败,它将使 fstab 步骤永远继续,只需编辑您的脚本以满足您的需要或将其删除。
替代情况 II - Crypted Dev:
加密分区可能会令人困惑,因为主分区有一个 UUID,而映射的解密分区有另一个与主分区不同的 UUID,它们必须在不同的地方定义,etc/crypttab
并且/etc/fstab
# lsblk -o name,uuid,mountpoint
??sda2 727fa348-8804-4773-ae3d-f3e176d12dac
? ??sda2_crypt (dm-0) P1kvJI-5iqv-s9gJ-8V2H-2EEO-q4aK-sx4aDi
Run Code Online (Sandbox Code Playgroud)
需要在中指定真实的 UUID etc/crypttab
# cat /etc/crypttab
sda2_crypt UUID=727fa348-8804-4773-ae3d-f3e176d12dac none luks
Run Code Online (Sandbox Code Playgroud)
虚拟 UUID 需要在 /etc/fstab
# cat /etc/fstab
UUID=P1kvJI-5iqv-s9gJ-8V2H-2EEO-q4aK-sx4aDi / ext4 defaults,errors=remount-ro 0 1
Run Code Online (Sandbox Code Playgroud)
替代情况 III - Ghost Dev:
设置为在启动时挂载但不存在于系统中或像 USB 驱动器一样分离的设备。
检查真实连接的设备lsblk -o name,uuid,mountpoint
并编辑/etc/fstab
以仅保留连接的设备
或将未连接的设备留在那里,但使用选项将它们设置为在启动时被忽略,noauto
并像这样设置行
UUID=BLA-BLA-BLA /mount ext4 option,noauto,option 0 0
Run Code Online (Sandbox Code Playgroud)
检查系统日志
journalctl -ab
systemd-analyze blame
systemd-analyze critical-chain
systemctl status dev-mapper-crypt_sda2.device
systemctl status systemd-udev-settle.service
Run Code Online (Sandbox Code Playgroud)
资料来源:Linuxhacks.org
披露:我是 Linuxhacks.org 的所有者
使用 gparted 调整大小或删除分区时,您通常必须创建一个新的交换分区。
然后有必要在创建后通过 gparted 激活交换(有命令“激活交换”)。
此外,您必须将新的 UUID 复制到 /etc/fstab 中以挂载它,否则在启动时操作系统将尝试找到它但徒劳无功,因为 fstab 文件包含引用旧交换的 UUID。Gparted 提供 UUID 的信息,但您可以轻松地在终端中运行:
sudo blkid
Run Code Online (Sandbox Code Playgroud)
找到它。
小智 6
我在启动时遇到了同样的问题。
在我的/etc/fstab
文件中,我的分区定义为/dev/sda1
、/dev/sda2
等,但在启动时,多次出现消息“ A start job is running for dev-sdx ”(“x”定义受影响的单元或分区)。
为了解决这个问题,我/dev/sdx
通过分区的 UUID更改了 的值。要查看 UUID,请从终端运行lsblk -f
。然后,复制受影响分区的 UUID 并将其写入/etc/fstab
文件,替换/dev/sdax
如下:/dev/sda1
更改为UUID=xxxxxxxxxxxxxxxxxx
.
它对我有用,我希望这些信息有用。
归档时间: |
|
查看次数: |
267340 次 |
最近记录: |