From 8ad1362a3bdf16c3a3958279c9487c2bb30f31a3 Mon Sep 17 00:00:00 2001 From: Suikan <26223147+suikan4github@users.noreply.github.com> Date: Sat, 10 Jul 2021 14:05:23 +0900 Subject: [PATCH] Add an01 Add a document of how to receover from the mistyping of passphrase Issue#21 --- appnote/an01_howtorecover.md | 62 +++++++++++++++++++++++++++++++++++ image/an01_bios.png | Bin 0 -> 5718 bytes image/an01_efi.png | Bin 0 -> 10519 bytes image/an01_normal.png | Bin 0 -> 7280 bytes 4 files changed, 62 insertions(+) create mode 100644 appnote/an01_howtorecover.md create mode 100755 image/an01_bios.png create mode 100755 image/an01_efi.png create mode 100755 image/an01_normal.png diff --git a/appnote/an01_howtorecover.md b/appnote/an01_howtorecover.md new file mode 100644 index 0000000..c715be6 --- /dev/null +++ b/appnote/an01_howtorecover.md @@ -0,0 +1,62 @@ +# How to recover from the mistyping of the passphrase +The mistyping of the passphrase is painful, in the full disk encrypted Linux. + +In the usual encrypted Ubuntu install by Ubiquity, mistyping os passphrase is warn by the kernel, and prompted to re-type. But in the full encrypted system, the user sees a boring message and command prompt. Usually, the user just gives up and reboot. It adds tens of second to reboot, and discourage the under to use a long passphrase. + +![bios](../image/an01_bios.png) + +This application note explains how to recover from this condition, quickly. + +# BIOS system +In the BIOS system, the recovery is pretty easy. + +In the case of the mistyping passphrase, GRUB goes into rescue mode. In this mode, the user can recover from 3 commands. + +``` +cryptomount -a +insmod normal +normal +``` + +The **cryptomount** command tries to mount the specific encrypted partition to boot. To mount it, the GRUB prompts the user to type the passphrase. The "-a" option specifies all encrypted partitions. If the system is encrypted by Kaiten-yaki, it has only one encrypted partition. So, this is the easiest way. + +The **insmod** command loads the specified GRUB command module from the mounted storage and inserts it into the command list. The second line loads the "normal" command which displays the normal menu to the user. + +Finally, **normal** command shows the normal boot menu to the user. + +Now, the user can select the system to boot as usual. + +# EFI system +In the EFI system, recovery needs extra steps compared to the BIOS system. + +Alternatively, GURB is not in the rescue mode but the normal mode, even the passphrase is mistyped. So, the user can use command completion. This is better than the BIOS system. + +The first step of the recovery is the same with the BIOS system. +``` +cryptomount -a +``` +Again, in the EFI system, the user can use the command completion by pressing the [TAB] key. + +The second step is unique in the EFI system. By using **ls** command check the list of volumes existing in the system, and identify which volume contains the grub menu. And then, pick that volume and assign it to the **prefix** variable, with grub path. + +Following is the example. The (lvm/vg1-mate) is dependent on the system. It has to be substituted by the appropriate volume name for each system. + +``` +ls +set prefix=(lvm/vg1-mate)/boot/grub +``` + +Then, the third step is the same with the BIOS systems. + +``` +insmod normal +normal +``` +Following is the screenshot of the command sequence to recover the mistyping of the passphrase. + +![bios](../image/an01_efi.png) + +## Summary +In the full disk encrypted system, mistyping of the passphrase is more painful than the partially encrypted system. The user can overcome this situation with several steps of commands and can show the normal boot menu. + +![bios](../image/an01_normal.png) diff --git a/image/an01_bios.png b/image/an01_bios.png new file mode 100755 index 0000000000000000000000000000000000000000..034f2e73da997a3690aa576240190a9a07c65bfd GIT binary patch literal 5718 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%0A_51%_cT# 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 R06?E_gAX65|0dyY{|&1t5widQ literal 0 HcmV?d00001 diff --git a/image/an01_normal.png b/image/an01_normal.png new file mode 100755 index 0000000000000000000000000000000000000000..a90c26f994168e5ec5efb5d569155467c99f2955 GIT binary patch literal 7280 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 bRmC=BcfY|(Y2n%?5jgAY;Z$?-!p;8y(+Fdk literal 0 HcmV?d00001