Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

error with /usr/sbin/grub-mkconfig Read-only file system??

205 views
Skip to first unread message

Dennis Clarke

unread,
Jun 22, 2021, 6:10:02 PM6/22/21
to

This was strange. I had not seen this before :

run-parts: executing /etc/kernel/postinst.d/zz-update-grub
5.12.12-genunix /boot/vmlinux-5.12.12-genunix
/usr/sbin/grub-mkconfig: 257: cannot create /boot/grub/grub.cfg.new:
Read-only file system
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 2
make[1]: *** [arch/powerpc/boot/Makefile:445: install] Error 1
make: *** [arch/powerpc/Makefile:409: install] Error 2


enceladus# ls -lap /boot/grub/
total 101
drwxr-xr-x 1 root root 10 Jun 11 03:42 ./
drwxr-xr-x 3 root root 4096 Jun 22 17:45 ../
drwxr-xr-x 1 root root 3 Apr 16 09:17 fonts/
-rw-r--r-- 1 root root 86272 May 10 19:44 grub
-r--r--r-- 1 root root 11362 Jun 11 03:42 grub.cfg
-rw-r--r-- 1 root root 1024 Apr 16 09:17 grubenv
drwxr-xr-x 1 root root 42 May 10 19:44 locale/
-rw-r--r-- 1 root root 0 Apr 16 09:17 mach_kernel
drwxr-xr-x 1 root root 216 May 10 19:44 powerpc-ieee1275/
drwxr-xr-x 1 root root 3 Apr 16 09:17 System/
enceladus# touch /boot/grub/foo
touch: cannot touch '/boot/grub/foo': Read-only file system
enceladus#

Wow. How the heck did that happen?

enceladus# blkid
/dev/sdb1: LABEL="swap2" UUID="7c38680c-02c1-429e-876c-48357af6ccb8"
TYPE="swap" PARTUUID="23af4d24-ca63-b34b-ada0-5ab4c20f4362"
/dev/sdb2: UUID="967da6b0-8a05-4894-b44c-cafebd009c5b" BLOCK_SIZE="4096"
TYPE="ext4" PARTUUID="e1aa5f9c-b575-3d4e-88e1-fc767d45009b"
/dev/sda1: PARTLABEL="Apple"
/dev/sda2: UUID="221a37cd-0cfb-3f7a-91da-78edee6f1382" LABEL="untitled"
TYPE="hfs" PARTLABEL="untitled"
/dev/sda3: UUID="be025229-d079-46ab-bf39-175a71ceea76" BLOCK_SIZE="4096"
TYPE="ext4" PARTLABEL="untitled"
/dev/sda4: UUID="9becc701-38d3-4468-b708-834280305893" TYPE="swap"
PARTLABEL="swap"
/dev/sda5: PARTLABEL="Extra"
enceladus#

OKay so the handling of HFS must be borked in some way.

enceladus#
enceladus# df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 800M 6.8M 793M 1% /run
/dev/sda3 273G 14G 246G 6% /
tmpfs 4.0G 0 4.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sdb2 131G 38G 87G 31% /usr/local
/dev/sda2 245M 11M 234M 5% /boot/grub
tmpfs 800M 0 800M 0% /run/user/16411
enceladus#

enceladus# uname -a
Linux enceladus 5.12.10-genunix #1 SMP Fri Jun 11 02:22:17 EDT 2021
ppc64 GNU/Linux
enceladus#

That is my kernel compile running just fine and perhaps I did an
apt-get update and/or upgrade and some hfs handling thing is borked.

So these old PowerMac things need that HFS partition to boot and it
seems something strange has happened ( again ) with the boot process.

Is this a known thing?

--
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
UNIX and Linux spoken
GreyBeard and suspenders optional

John Paul Adrian Glaubitz

unread,
Jun 22, 2021, 6:10:02 PM6/22/21
to
Hello!


Adrian

On Jun 23, 2021, at 12:03 AM, Dennis Clarke <dcl...@blastwave.org> wrote:



Dennis Clarke

unread,
Jun 22, 2021, 6:40:02 PM6/22/21
to
On 6/22/21 22:08, John Paul Adrian Glaubitz wrote:
> Hello!
>
> See this discussion: https://lists.debian.org/debian-powerpc/2021/06/msg00006.html
>
> Adrian

That was a fast reply !

Thank you ... however what am I doing wrong here ??

enceladus#
enceladus# apt show hfsprogs
Package: hfsprogs
Version: 540.1.linux3-4
Priority: optional
Section: non-free/otherosfs
Maintainer: John Paul Adrian Glaubitz <glau...@physik.fu-berlin.de>
Installed-Size: 555 kB
Depends: libc6 (>= 2.28), libssl1.1 (>= 1.1.0)
Homepage: https://opensource.apple.com/source/diskdev_cmds/
Download-Size: 162 kB
APT-Sources: http://deb.debian.org/debian-ports unreleased/main ppc64
Packages
Description: mkfs and fsck for HFS and HFS+ file systems
The HFS+ file system used by Apple Computer for their Mac OS is
supported by the Linux kernel. Apple provides mkfs and fsck for
HFS+ with the Unix core of their operating system, Darwin.
.
This package is a port of Apple's tools for HFS+ filesystems.
.
For users, HFS+ seems to be a good compromise to carry files between
MacOS X and Linux Machines, as HFS+ doesn't suffer the problems of
FAT32 like:
.
* huge space waste (in slack space as devices grow faster);
* ability to create files that are more than 4GB in size (especially
good for those working with multimedia and that need to carry large
ISO files);
* ability to use case preserving (and even sensitivity!);
* ability to use uid's and gid's on the filesystem.
.
Users in general can enjoy such benefits since it is expected to have
more HFS+ filesystems in use, as Apple has announced Macintoshes for
ix86-64, besides the filesystem being already supported by PowerPC
systems since the beginning.

enceladus# apt-get install hfsprogs
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
hfsprogs
0 upgraded, 1 newly installed, 0 to remove and 7 not upgraded.
Need to get 162 kB of archives.
After this operation, 555 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian-ports unreleased/main ppc64 hfsprogs
ppc64 540.1.linux3-4 [162 kB]
Fetched 162 kB in 1s (273 kB/s)
Selecting previously unselected package hfsprogs.
(Reading database ... 57475 files and directories currently installed.)
Preparing to unpack .../hfsprogs_540.1.linux3-4_ppc64.deb ...
Unpacking hfsprogs (540.1.linux3-4) ...
Setting up hfsprogs (540.1.linux3-4) ...
Processing triggers for man-db (2.9.4-2) ...
enceladus#


Is /dev/sda2 read only ?

enceladus# cat /proc/mounts | grep 'grub'
/dev/sda2 /boot/grub hfs ro,relatime,uid=0,gid=0 0 0

YES .. that is read only.

enceladus# mount -o remount,rw /boot/grub
enceladus# cat /proc/mounts | grep 'grub'
/dev/sda2 /boot/grub hfs ro,relatime,uid=0,gid=0 0 0

That seems to fail silently.

enceladus# mount -o remount,rw /boot/grub
enceladus# echo $?

0
enceladus#

No error at all but we see :

enceladus# cat /proc/mounts | grep 'grub'
/dev/sda2 /boot/grub hfs ro,relatime,uid=0,gid=0 0 0
enceladus#

Do I have to specify -t hfs here ?

enceladus# mount -v -t hfs -o remount,rw /boot/grub
mount: /dev/sda2 mounted on /boot/grub.
enceladus# cat /proc/mounts | grep 'grub'
/dev/sda2 /boot/grub hfs ro,relatime,uid=0,gid=0 0 0
enceladus#

So am I missing something here ?

Dennis Clarke

unread,
Jun 22, 2021, 7:10:02 PM6/22/21
to
* * * The magic self reply here * * *

dmesg says :

[531474.917470] hfs: filesystem was not cleanly unmounted, running
fsck.hfs is recommended. leaving read-only.

Which makes no sense given that this is on UPS and never merely crashes
but whatever.



enceladus# umount /dev/sda2
enceladus# mount -v | grep 'sda2'
enceladus# fsck.hfs -d -q /dev/sda2
** /dev/sda2 (NO WRITE)
Using cacheBlockSize=32K cacheTotalBlock=1024 cacheSize=32768K.
Executing fsck_hfs (version 540.1-Linux).
volume type is HFS
primary MDB is at block 2 0x02
alternate MDB is at block 499999 0x7a11f
primary VHB is at block 0 0x00
alternate VHB is at block 0 0x00
sector size = 512 0x200
VolumeObject flags = 0x19
total sectors for volume = 500001 0x7a121
total sectors for embedded volume = 0 0x00
QUICKCHECK ONLY; FILESYSTEM DIRTY
enceladus#

OKay well there we see it.

enceladus#
enceladus# fsck.hfs -d /dev/sda2
** /dev/sda2
Using cacheBlockSize=32K cacheTotalBlock=1024 cacheSize=32768K.
Executing fsck_hfs (version 540.1-Linux).
** Checking HFS volume.
The volume name is untitled
** Checking extents overflow file.
** Checking catalog file.
Unused node is not erased (node = 179)
Unused node is not erased (node = 226)
Unused node is not erased (node = 235)
.
.
. a whole whack of those :)
.
Unused node is not erased (node = 375)
Unused node is not erased (node = 376)
Unused node is not erased (node = 378)
Unused node is not erased (node = 383)
** Checking catalog hierarchy.
** Checking volume bitmap.
** Checking volume information.
Verify Status: VIStat = 0x0000, ABTStat = 0x0000 EBTStat = 0x0000
CBTStat = 0x0004 CatStat = 0x00000000
** Repairing volume.
** Rechecking volume.
** Checking HFS volume.
The volume name is untitled
** Checking extents overflow file.
** Checking catalog file.
** Checking catalog hierarchy.
** Checking volume bitmap.
** Checking volume information.
** The volume untitled was repaired successfully.
enceladus#
enceladus# grep 'grub' /etc/fstab
# /boot/grub was on /dev/sda2 during installation
UUID=221a37cd-0cfb-3f7a-91da-78edee6f1382 /boot/grub hfs
defaults 0 2
enceladus# mount -v /boot/grub
mount: /dev/sda2 mounted on /boot/grub.
enceladus#
enceladus# cat /proc/mounts | grep 'grub'
/dev/sda2 /boot/grub hfs rw,relatime,uid=0,gid=0 0 0
enceladus#

Neato. Thank you Sir Adrian !
0 new messages