[排错] 解决 openSUSE & SUSE 使用 zipper 命令时报错 “error: can’t create transaction lock on /usr/lib/sysimage/rpm/.rpm.lock (Resource temporarily unavailable)”

报错代码:

error: can't create transaction lock on /usr/lib/sysimage/rpm/.rpm.lock (Resource temporarily unavailable)

解决方法:

步骤一:删除 Zypper 的软件数据库

# rm -rf /var/lib/rpm/_db*

步骤二:重建 Zypper 的软件数据库

# rpm --rebuilddb

步骤三:刷新 Zypper 缓存

# zypper refresh

[DEBUG] Linux resolve error code ‘DB version too old ……, expected …… for domain implicit_files!’

Error Code:

# useradd <account name>
DB version too old ......, expected ...... for domain implicit_files!
......

Or:

# chage -l <user name>
DB version too old ......, expected ...... for domain implicit_files!
......

Solution:

Step One: Create /etc/sssd/sssd.conf file

# vim /etc/sssd/sssd.conf

Add follow lines:

[sssd]
enable_files_domain = true

Step Two: Give /etc/sssd/sssd.conf file properly privilege

# chmod 600 /etc/sssd/sssd.conf

Step Three: Restart sssd service

# systemctl restart sssd

Reference:

https://access.redhat.com/solutions/7031304

[排错] openSUSE & SLES 解决开机后 wicked 不能设置 IP 地址

报错代码:

开机后 wicked 不能自动设置 IP 地址

# cat /var/log/messages
......
...... wickedd-nanny[1218]: device eth0: call to org.opensuse.Network.Protocol.IPv6.changeProtocol() failed: General failure
...... wickedd-nanny[1218]: eth0: failed to bring up device, still continuing
......
...... lo              up
...... eth0            device-not-running
...... Finished wicked managed network interfaces.
......

解决方法一:将 wicked 软件降级到较低版本

(步骤略)

解决方法二:取消 ipv6.disable=1 参数

2.1 修改 /etc/default/grub 文件

# /etc/default/grub

删除以下内容:

......
......ipv6.disable=1......
......

2.2 使刚刚修改的配置生效

# grub2-mkconfig -o /boot/grub2/grub.cfg

2.3 检查刚刚设置的配置

# grep "^\s*ipv6.disable" /boot/grub2/grub.cfg

[排错] RHEL 解决使用 yum 命令时卡住

报错代码

# yum update 
Updating Subscription Management repositories.
Unable to read consumer identity

可尝试的解决方法一:修改 /etc/yum/pluginconf.d/subscription-manager.conf 文件

# vim /etc/yum/pluginconf.d/subscription-manager.conf

将以下内容:

......
[main] 
enabled=1
......

修改为:

......
[main] 
enabled=0
......

可尝试的解决方法二:安装对应的 katello-ca-consumer-latest.noarch.rpm 软件包

(步骤略)

(补充:katello-ca-consumer-latest.noarch.rpm 软件包下载自对应的 Red Hat Satellite 服务器,补充链接:Red Hat Satellite client register

[排错] Linux 解决启动时,某个盘挂不上或者报错 “Warning: dracut-initqueue timeout – starting timeout scripts”

报错代码

启动时某个盘挂不上

或者:

Warning: dracut-initqueue timeout - starting timeout scripts

分析

系统启动 initrd 的时间默认上限是 90 秒钟,如果 initrd 加载的时间超过 90 秒钟,则系统会报此错误。

导致 initrd 加载时间过多的原因有很多,例如系统根 “/” 目录需要加载的硬盘过多、系统根 “/” 目录的逻辑卷过多、根 “/” 目录的系统逻辑卷挂载格式是 /dev// (这是设备的链接文件,需要等待 udev 规则将其创建以后才能挂载)。

注意:当无法正常进入系统时可以进入救援模式后再使用可尝试的解决方法尝试解决问题


可尝试的解决方法一:系统根 “/” 目录不使用由多个硬盘组合而成的逻辑卷

(步骤略)

可尝试的解决方法二:将系统根 “/” 目录的挂载格式写成 /dev/mapper/<volume group>-<logical volume>

步骤一:将系统根 “/” 目录的挂载格式写成 /dev/mapper/<volume group>-<logical volume>

# vim /etc/fstab

(步骤略)

步骤二:重新制作 initrd,让修改后的挂载格式在 initrd(dracut)引导时生效

# mkinitrd

可尝试的解决方法三:延长系统等待 initrd 的时间上限

步骤一: 修改 /ETC/DEFAULT/GRUB 配置文件

# vim /etc/default/grub

在这一行里:

GRUB_CMDLINE_LINUX="......"

添加:

GRUB_CMDLINE_LINUX="...... systemd.default_timeout_start_sec=500s"

(补充:这里以将系统等待 initrd 的时间限延长到 500 秒为例)

步骤二:使刚刚的修改生效

# grub2-mkconfig -o /boot/grub2/grub.cfg

参考文献:

Linux 启动顺序