Back in late 2018, Alan Jenkins posted a note to this list concerning a problem he had observed with drives not being properly dismounted on restarts or power down - Startup. No one seemed to reply and I had seen the same problem. I swapped a few e'mails with Alan to get particulars and wrote a proposal for a test to be added to our basic test matrix. I sent the proposal to this list and after some discussion, I found out that a similar test was in the matrix, but had been removed.
I tried resubmitting an updated version to the list, but got no responce. Probably because F30 release was close.
Here is the original test case:
https://fedoraproject.org/wiki/QA:Testcase_base_shutdown/reboot
I couldn't find the version of the matrix that included this case.
This is what I used as the base for the proposal and just added a couple things around checking the disks. The recommendation is that this test only be done on bare metal installs.
Here is the proposed test process:
Version 1.1
How to test:
1. On a running system, change to a virtual console by pressing Ctrl+Alt+F2 Result: A virtual console appears with a login prompt.
2. At the virtual console, login as the root user Result: Login accepted
3. Halt the system by running the command: “halt” Result: The `halt` is accepted and halts the system. The screen is left powered on, showing the final shutdown messages. No system filesystem / LVM device is left mounted / active when the system finally halts. In some cases you might see a number of retries. This is okay as long as the last retry is successful.
4. Read the on-screen messages. Result: Check for messages indicating failures. Things like “journal recovery” are a problem.
5. You now need to manually re-boot the system. On most hardware (which complies with ACPI), you can manually power off by holding the power button down for five seconds. Then press the power button to power on again. Result: When the system boots, either after a halt, reboot or shutdown operation, the system successfully boots without error. All expected disk partitions are cleanly mounted. Check boot logs to see that they do not show any”fsck” (filesystem repair) operations, or “recovering journal” (ext3/4 journal recovery. The boot logs only need to be checked after one shutdown - reboot cycle. The logs can be checked using the command “journalctl -b /usr/lib/systemd/systemd-fsck”. A result similar to the following indicates clean mounting:
“-- Logs begin at Mon 2018-11-19 13:52:18 EST, end at Sat 2019-01-12 12:27:48 ES> Jan 12 08:37:25 localhost.localdomain systemd-fsck[503]: /dev/mapper/fedora-roo> Jan 12 08:37:36 localhost.localdomain systemd-fsck[745]: /dev/mapper/fedora-hom> Jan 12 08:37:36 localhost.localdomain systemd-fsck[743]: /dev/sda1: clean, 412/>”
6. After the system boots, again change to a virtual console by pressing Ctrl+Alt+F2. Result: Virtual console appears
7. At the virtual console, login as the root user Result: Login successful
8. Reboot the system by running the command: “reboot” Result: The `reboot` is accepted and initiates a system reboot. The system reboots with no additional user interaction. Note: Manually booting the system may be required if the previous step fails.
9. After the system boots, once again change to a virtual console by pressing Ctrl+Alt+F2. Result: Virtual console appears.
10. At the virtual console, login as a non-root user. If no non-root user accounts are available, you can create a new user account as follows: Login as the root user and use the command: “useradd” to add a non-root user. Logout of root and login as the new non-root user. Result: User creation successful if used. Non-root login successful.
11. Power off the system by running the shutdown command. Consult the man page for different acceptable [TIME] values. For example, to power off the system immediately, type the following command: “shutdown now” Result: The shutdown is accepted and powers off the system without error.
12. Lastly, power on the system. Check that it boots successfully. Result: When the system boots, either after a halt, reboot or shutdown operation, the system successfully boots without error, and all expected disk partitions are cleanly mounted.
Have a Great Day!
Pat (tablepc)
I think we need to look at the journal for the reboot/shutdown to have direct evidence whether the right or wrong thing is happening. In the case of Btrfs, there is no journal replay. But also, you'd need to track down why journal replay is happening anyway.
I'm pretty sure systemd does not umount sysroot, but rather remounts it ro at shutdown time. That clears the journal and dirty bit.
But I agree there should be a test to make sure sysroot is ro remounted; and that everything else is unmounted, before the reboot.