provide warning to user about bad media when running installer

Bug #1919363 reported by ԜаӀtеr Ⅼарсһуnѕkі
This bug affects 1 person
Affects Status Importance Assigned to Milestone
calamares-settings-ubuntu (Ubuntu)

Bug Description

Right now, we have this great check running at boot that tests the integrity of various files contained on the ISO. Previously, it interrupted the boot process but would report to the user whether or not a failure occurred. Recent changes have made this test silently run in the background. It's plausible it can still be running *after* the GUI loads. That's neat stuff, but there's no feedback to the user.

A file by the name of casper-md5check.json is in /run in the live environment with the results. In turn, that will be dropped into /var/log/installer on the installed system. This JSON file will report which files did not match and what the overall result is (which can be unknown, fail, success, or skip). Example:

  "checksum_missmatch": [
  "result": "fail"

In turn, the results are reported by apport in any bugs filed.

Bug 1918733 was created to resolve this issue, but was marked Won't Fix, at least for casper. In that bug, it was suggested that the various installers would implement this in some way. Therefore, this bug exists to resolve it in Calamares.

My proposed fix is a simple shell script or a small Python program. It would be run before Calamares via the customized Desktop Entry (i.e. the one that's on the desktop). I'm thinking of this instead of doing it in Calamares as it will not allow us to create random dialogs. kdialog would, though, so we should add that to the live seed and use that. I would suggest that we run this with ; and not && because we don't want a minor logic failure or something to prevent installation altogether. Also, I don't think we want to get heavy handed. There may be a reason one may want to continue with bad media (e.g. for testing).

The logic would be something like this:

 1. Check the status of the systemd casper-md5check.service
 2. If the service is still running, wait for a given timeout
 3. If the timeout is reached and the service is still running, exit gracefully (maybe submit a bug? or record the problem somewhere?)
 4. Parse the results
 5. Warn the user but do not prevent them from continuing

ProblemType: Bug
DistroRelease: Ubuntu 21.04
Package: calamares-settings-lubuntu 1:21.04.2
ProcVersionSignature: Ubuntu 5.10.0-14.15-generic 5.10.11
Uname: Linux 5.10.0-14-generic x86_64
ApportVersion: 2.20.11-0ubuntu60
Architecture: amd64
CasperMD5CheckMismatches: ./casper/filesystem.manifest
CasperMD5CheckResult: fail
CasperVersion: 1.460
CurrentDesktop: LXQt
Date: Tue Mar 16 18:33:36 2021
LiveMediaBuild: Lubuntu 21.04 "Hirsute Hippo" - Alpha amd64 (20210311)
PackageArchitecture: all
SourcePackage: calamares-settings-ubuntu
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
ԜаӀtеr Ⅼарсһуnѕkі (wxl) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.