У меня есть машина coreos, которая в процессе загрузки монтирует зашифрованный внешний жесткий диск. В последние несколько дней монтирование внешнего диска начало сбоить. Я специально вижу, что ОС не может создать расшифрованную точку монтирования, потому что UUID не найден.
$ systemctl status systemd-cryptsetup@secure.service
● systemd-cryptsetup@secure.service - Cryptography Setup for secure
Loaded: loaded (/etc/crypttab; generated)
Active: inactive (dead)
Docs: man:crypttab(5)
man:systemd-cryptsetup-generator(8)
man:systemd-cryptsetup@.service(8)
Oct 21 19:55:49 coreosbox systemd[1]: Dependency failed for Cryptography Setup for secure.
Oct 21 19:55:49 coreosbox systemd[1]: systemd-cryptsetup@secure.service: Job systemd-cryptsetup@secure.service/start failed with result 'dependency'.
$ systemctl cat systemd-cryptsetup@secure.service
...
ExecStart=/usr/lib/systemd/systemd-cryptsetup attach 'secure' '/dev/disk/by-uuid/<uuid>' '/path/to/.secure-passphrase' 'nofail'
...
После некоторых подключений и отключений я в конечном итоге заставляю fdisk распознавать, что там есть диск, но нет указания на uuid для диска.
core@coreosbox /dev $ sudo fdisk -l sdc
Disk sdc: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: 000-1HJ166
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: <long-short-short-short-long>
Device Start End Sectors Size Type
sdc1 2048 5860533134 5860531087 2.7T Linux RAID
И если я подожду пару минут, я пойму, что раздел не запускается на границе физического сектора.
core@coreosbox /dev $ sudo fdisk -l sdc
Disk sdc: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: 000-1HJ166
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
sdc1 1 4294967295 4294967295 2T ee GPT
Partition 1 does not start on physical sector boundary.
Мне сложно понять, что это может означать или как решить проблему. Означает ли это, что диск каким-то образом поврежден? Есть ли способ заставить ОС думать, что на диске есть предыдущий известный uuid?