Brief description of the problem
Following a struggle, the system is updated to V4.1.
However the shares are not visible to Windows File Explorer on the network.
Any help diagnosing this would be greatly appreciated.
The log of the switch to V4.1 is below. A number of the issues listed have been mentioned in other posts.
I’ve also listed at the end some things that I think could be improved in the documentation and installer.
Log of Switch to V4
• Creating installer. The recommended (Windows) software is Rawrite32
. This software doesn’t look for ISO files by default, and when used gave me a USB drive that failed to boot.
• I used balenaEtcher which provides a portable installation and looks for ISO files. This wrote a bootable image over a FAT32 formatted USB with no problems. I think this should be recommended for creating installation media using Windows
• The resulting USB booted on the N54L but the system lost touch with the screen. CTRL+ALT+DEL worked to abandon the boot.
• Following suggestions on other threads about installing Rockstor V4 on AMD processors, I added nomodeset
to the kernel parameters using the grub editor (entered by pressing e before the boot sequence continued). This made no difference.
• To workaround this, I booted the USB on another (old laptop) machine. This successfully went through the create install disc sequence.
• During the sequence, the mode of the display screen changed fonts, resolution etc – I presume this was when control was passed to the new kernel to deal with setup interactions (keyboard etc), and was the problem with running the sequence on the target hardware. I tried adding nomodeset
in this situation too. It made no difference. Presumably the changed command line was not passed to a new run of the kernel – this is speculation.
• The system image created in this way suffers with the same problem as the installer – it loses touch with the screen during the boot sequence. Setting nomodeset
in the kernel parameters using the grub editor allows the image to boot up consistently to the login prompt.
• I have made this permanent by editing /etc/default/grub
(using nano as root) to change GRUB_CMDLINE_LINUX= ""
to be GRUB_CMDLINE_LINUX= "nomodeset"
and running grub2-mkconfig -o /boot/grub2/grub.cfg
• I updated the system running as root using zypper refesh; zypper up --no-recommends
(which took some time and included a kernel update)
• I logged into the web interface and attempted to import my pool. This gave an error when mounting reporting /usr/bin/mount -t btrfs -o subvolid=331 /dev/disk/by-id/ata-HGST_HDN726050ALE610_NAG3N0RK /mnt2/Photos. rc = 32
reporting /mnt2/Photos: wrong fs type, bad option, bad superblock on /dev/sdd, missing codepage or helper program, or other error.
• Mounting the pool using the command line mount /dev/sda /mnt
succeeded i.e. didn’t report an error. However, it only mounted the subvolumes readonly. The files can be read successfully.
• Trying mount -v
i.e. verbose option to attempt to get more information yielded no difference. In fact, the mount command leaves a kernel message (accessed by dmesg | tail
) suggesting that the btrfs option allow_unsupported=1
should be specified, but not why. (I’ve yet to find syslog on this system.)
• Using echo 1 > /sys/module/btrfs/parameters/allow_unsupported
demonstrated that the pool could be mounted OK. I ran btrfs scrub start /mnt
and btrfs check /dev/sda
to make sure the pool was in good shape, and these ran to completion. The only output was that check warned some quota values were inconsistent. I believe Rockstor runs with quotas disabled in some way, so I guess this isn’t important.
• I had some difficulty setting allow_unsupported permanently – the suggestions elsewhere in the forum to modify a .conf file in /etc/modprobe.d/
to set the option didn’t work for me. However passing a further kernel option of btrfs. allow_unsupported=1
worked fine. This was implemented by adding this to the GRUB_CMDLINE_LINUX
variable alongside the nomodeset
option.
• The Opensuse documentation lists the reasons that is counts as unsupported for SLES (but not Leap as far as I can see). The list for SLES 15 is Automatic Defragmentation; In-band Deduplication; RAID 56; Device Replace; Seeding Devices; Inode Cache
.
• Listing details using btrfs inspect-internal dump-super
reveals the following flags: (MIXED_BACKREF | BIG_METADATA | EXTENDED_IREF | RAID56 | SKINNY_METADATA)
• The RAID56 flag is clearly an issue. Listing details using btrfs fi df /mnt reveals Data, single; System, RAID1; Metadata, RAID1; GlobalReserve, single
. This is as expected – no RAID56. It Is not clear how to clear this wrongly set flag.
• There has been a bug corrected in btrfs in this area. Once the flag is set, it is never cleared, even when a balance is completed removing any raid5 or raid6 profiles.
• Ran btrfs fi balance start -dconvert=single -mconvert=raid1 /mnt
to clear the flag. No change, so the volume is wrongly flagged and the unsupported option needs to be specified to mount it other than read only.
• Imported pool OK
• Imported (shares) configuration OK
• Started SAMBA service
• Accessing using Windows File Explorer. The server is visible, but no shares are.
• I’ve had a brief look at the samba.config; it doesn’t include the suggested line server role = standalone server
Recommendations
• Recommend balenaEtcher for creating installation discs on Windows, and deprecate rawrite32
• Make sure that nomodeset
is always passed to the kernel whenever it is launched. There is no sense in changing modes on a text-based system which is normally run headless. Doing this should not make any machine that currently installs and boots Rockstor no longer do so, and will allow more machines to be supported by Rockstor out of the box. This ties in with the current Kernel parameter setting of plymouth.enable=0
which is presumably there for the much same reason.
• Document the symptoms of a pool mounting read only – the current diagnostics are obscure.
• Document a preferred method for setting allow_unsupported=1
for those who need it, with a suitable warning – I recommend editing /etc/default/grub
as this ensures the option is in place whenever the mount occurs.
• Make it possible to ssh into Rockstor with the user that is setup in the web interface. It’s not good practice to require logging in as root for any necessary maintenance that can’t be performed with the web interface.