error: failed to init transaction (unable to lock database)
error: could not lock database: Read-only file system
なんてエラーが表示された場合の解決法. 何らかのバグによりルートディレクトリがRead-onlyでマウントされてしまった場合に吐くエラーのため,ルートディレクトリをRead-Writeで再マウントすれば解決するはず. 私の環境では以下のコマンドで解決した.
error: could not lock database: Read-only file system
sudo mount -o remount,rw /
ルートディレクトリ"/"をRead-Writeで再マウントするコマンド. この後,"sudo pacman -Syu"すると上手く更新できた.もしも,起動する度にRead-onlyでルートディレクトリがマウントされてしまう場合は,/etc/fstabを編集することでマウント方法を指定できる.
sudo nano /etc/fstab
とし編集画面に入る.
#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
/dev/mmcblk0p5 / ext4 defaults 0 0
上記の太字部分を追記することで,ルートディレクトリを正常にマウントできるようになる. なお,各項目はスペースでは無くタブで区切られていることに注意. また,/dev/mmcblk0p5の部分はルートディレクトリのいるパーティション名であり,これは,
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
/dev/mmcblk0p5 / ext4 defaults 0 0
sudo fdisk -l
とすることで下記のように確認できる.
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 186367 184320 90M c W95 FAT32 (LBA)
/dev/mmcblk0p2 186368 30867455 30681088 14.6G 5 Extended
/dev/mmcblk0p5 188416 30867455 30679040 14.6G 83 Linux
TypeがLinuxなパーティションがそれであった(今回はp5). 以上/etc/fstabを保存し"sudo reboot"してみれば,ルートディレクトリがRead-Writeでマウントされているはずである.
/dev/mmcblk0p1 2048 186367 184320 90M c W95 FAT32 (LBA)
/dev/mmcblk0p2 186368 30867455 30681088 14.6G 5 Extended
/dev/mmcblk0p5 188416 30867455 30679040 14.6G 83 Linux
おまけ. パッケージを更新した時に,
:: Synchronizing package databases...
error: failed retrieving file 'core.db' from mirror.archlinuxarm.org : Could not resolve host: mirror.archlinuxarm.org
error: failed to update core (download library error)
error: failed retrieving file 'extra.db' from mirror.archlinuxarm.org : Could not resolve host: mirror.archlinuxarm.org
error: failed to update extra (download library error)
error: failed retrieving file 'community.db' from mirror.archlinuxarm.org : Could not resolve host: mirror.archlinuxarm.org
error: failed to update community (download library error)
error: failed retrieving file 'alarm.db' from mirror.archlinuxarm.org : Could not resolve host: mirror.archlinuxarm.org
error: failed to update alarm (download library error)
error: failed retrieving file 'aur.db' from mirror.archlinuxarm.org : Could not resolve host: mirror.archlinuxarm.org
error: failed to update aur (download library error)
error: failed to synchronize any databases
error: failed to init transaction (download library error)
というエラーを吐き出した時の対処法. resolv.confにネームサーバを追記することで解決した. 具体的には,
error: failed retrieving file 'core.db' from mirror.archlinuxarm.org : Could not resolve host: mirror.archlinuxarm.org
error: failed to update core (download library error)
error: failed retrieving file 'extra.db' from mirror.archlinuxarm.org : Could not resolve host: mirror.archlinuxarm.org
error: failed to update extra (download library error)
error: failed retrieving file 'community.db' from mirror.archlinuxarm.org : Could not resolve host: mirror.archlinuxarm.org
error: failed to update community (download library error)
error: failed retrieving file 'alarm.db' from mirror.archlinuxarm.org : Could not resolve host: mirror.archlinuxarm.org
error: failed to update alarm (download library error)
error: failed retrieving file 'aur.db' from mirror.archlinuxarm.org : Could not resolve host: mirror.archlinuxarm.org
error: failed to update aur (download library error)
error: failed to synchronize any databases
error: failed to init transaction (download library error)
sudo nano /etc/resolv.conf
とし,resolv.confを編集する. 編集後のresolv.confは下記のようになった.
# Generated by resolvconf
nameserver 8.8.8.8
nameserver 8.8.4.4
これでresolv.confを保存すると上手く更新することができた.
nameserver 8.8.8.8
nameserver 8.8.4.4
5257621868968260378
https://www.storange.jp/2015/02/archlinuxread-only.html
https://www.storange.jp/2015/02/archlinuxread-only.html
ArchlinuxがRead-onlyでマウントされた場合
2015-02-20T20:38:00+09:00
https://www.storange.jp/2015/02/archlinuxread-only.html
Hideyuki Tabata
Hideyuki Tabata
200
200
72
72