Using fsck to check and repair LUKS encrypted disk?
Solution 1:
The exact method depends on how you have setup luks, and if you have LVM on top of luks or if you just have a filesystem within the luks volume.
If you don't have LVM in addition to luks then you would probably do something like this.
cryptsetup luksOpen /dev/rawdevice somename
fsck /dev/mapper/somename
# or
cryptsetup luksOpen /dev/sda2 _dev_sda2
fsck /dev/mapper/_dev_sda2
If you used the LVM on LUKS option providied by the Debian/Ubuntu installer, then you'll need to start up LVM. So vgchange -aly
after opening the encrypted volume, then run fsck against the /dev/mapper/lvname
.
(If commands are missing, you may need to do apt-get install cryptsetup
first. Similarly if you need vgchange
do apt-get install lvm
.)
Solution 2:
You need to open the LUKS volume first.
cryptsetup luksOpen /dev/(whatever) someName
This'll ask you for the password, then create /dev/mapper/someName
, which is the plaintext device that you can run fsck
on. When you're done,
cryptsetup luksClose someName
will remove the /dev/mapper/someName
plaintext device, .
Solution 3:
The procedure should be the same.
Using a Debian (7.7.0 amd64 netinst, in my case) USB stick, one can go into rescue mode, which should identify the LUKS partition, prompt for a password, and map it. It also identifies and maps any LVM partitions contained therein. If you don't mount the root partition, from the shell prompt you can just e2fsck -f -c /dev/system_name/partition_name
, etc.
This question is four years old, but I don't think that the procedure has changed.
I should point out, though, that doing a fsck -n
on a mounted filesystem is almost sure to report errors that won't actually exist when you fsck
it unmounted!