ブログ一覧へ

【OpenBSD】更新後「zsh: undefined symbol '_udivdi3'」というエラーの修正する方法

公開日:2023-04-19

OpenBSD 7.3は公開されましたので、直ぐ全てのサーバー(64-bit)を更新しました。

それは問題無しで出来ました。

でも、ThinkPad T43(32-bit)で下記のエラーが発生しました:

ssh 192.168.0.123
Last login: Tue Apr 18 22:32:51 2023
OpenBSD 7.3 (GENERIC) #660: Sat Mar 25 11:17:44 MDT 2023

Welcome to OpenBSD: The proactively secure Unix-like operating system.

Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code.  With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.

Cannot open X display!
xmodmap:  unable to open display ''
-zsh:-zsh: undefined symbol '__udivdi3'
ld.so: -zsh: lazy binding failed!
Connection to 192.168.0.123 closed.

これのせいで、ノートでもttyでログイン出来なくなったり、端末を開かなくなった。

1週間後、やっと修正する方法を見つけました。

まずは再起動して、起動画面で「boot -s」を入力して下さい。

Using drive 0, partition 3.
Loading…
probing : pc0 apm pci mem[632K 1533M a20=on]
disk: fd0 hd0+
>> OpenBSD/i386 BOOT 3.44
boot> boot -s

Enter pathname of shell or RETURN for sh: sh

それでシングルユーザーモードに起動します。

しかし、シングルユーザーモードは読み取り専用モードですので、まずはディスクをマウントするのは必要となります。

それ後で、ルートユーザーのシェルはshに交換しましょう。

mount -a
chsh -s /bin/sh root
reboot

今はいつでも通りに起動して、CTRL+Alt+F2を押して、rootアカウントにログインして下さい。

パッケージを更新しましょう。

pkg_add -ui

その後でzshに戻してはOKです。

chsh -s /usr/local/bin/zsh root
exit

CTRL+Alt+F5を押したら、GUI系ログイン画面に帰ります。

ここから普通にパソコンを使えます。

以上