LINUX.ORG.RU

Как восстановить разметку на диске на запущенной системе?

 , , , ,


1

1

Помогите, пожалуйста. Не могу ничего придумать.
В общем, хотел сделать загрузочную флешку с помощью Ventoy, и мисскликнул, установив его на свой основной диск с системой, чем снёс текущую разметку…
Но система пока жива, и я не перезагружался, ядро Linux еще работает на старой разметке!

Система Manjaro Linux.
Диск шифрованный LUKS.
SSD тип диска.
Не перезагружался несколько дней уже, Linux ядро еще помнит старую разметку. Перезагрузка, думаю, убьёт систему.


Ventoy:

Ventoy


Gparted показывает такое:

Gparted 1
Gparted 2


Команда lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,LABEL,UUID:

lsblk


Testdisk быстрый поиск:

Testdisk Quick


Testdisk глубокий поиск:

Testdisk Deep




Последнее исправление: ErrorMan (всего исправлений: 1)
Ответ на: комментарий от QsUPt7S

На самом деле не открывает картинки, только если referer стоит.
Если скопировать вручную в адресную строку, то видно.

MirandaUser2
()
Последнее исправление: MirandaUser2 (всего исправлений: 1)
Ответ на: комментарий от ErrorMan

Насколько я понимаю, шифрованные LUKS-разделы поверх GPT-разметки?

Сохраните на отдельный заголовок шифрованного root-раздела с помощью # cryptsetup luksHeaderBackup --header-backup-file <путь_к_файлу_копии_заголовка> /dev/nvme0n1p2. И сохраните (хотя бы просто выписав на стикер), а лучше опубликуйте здесь начальные и конечные LBA раздела /dev/nvme0n1p2. Их, вероятно, можно выяснить выполнив # fdisk --list /dev/nvme0n1.

P.S.: В идеале нужно было бы перед всеми манипуляциями сохранить посекторную копию всего накопителя, а уже потом пытаться восстанавливать.

QsUPt7S ★★
()
Последнее исправление: QsUPt7S (всего исправлений: 1)
Ответ на: комментарий от QsUPt7S

Заголовки сохранил на внешний диск. Вот вывод LBA значений, но чето грустные они…

[sudo] пароль для eman: 
Диск /dev/nvme0n1: 953,87 GiB, 1024209543168 байт, 2000409264 секторов
Disk model: SPCC M.2 PCIe SSD                       
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x7c4fa3c2

Устр-во        Загрузочный     начало      Конец    Секторы Размер Идентификатор Тип
/dev/nvme0n1p1 *                 2048 2000343727 2000341680 953,8G             7 HPFS/NTFS/exFAT
/dev/nvme0n1p2             2000343728 2000409263      65536    32M            ef EFI (FAT-12/16/32)

ErrorMan
() автор топика
Ответ на: комментарий от QsUPt7S

udisksctl info --block-device /dev/nvme0n1p2 >> нафорум.txt

/org/freedesktop/UDisks2/block_devices/nvme0n1p2:
  org.freedesktop.UDisks2.Block:
    Configuration:              [('crypttab', {'name': <b'luks-29d216c6-9e8e-43f3-8c2d-ba38c650bd6a'>, 'device': <b'UUID=29d216c6-9e8e-43f3-8c2d-ba38c650bd6a'>, 'passphrase-path': <b'/crypto_keyfile.bin'>, 'options': <b'luks'>})]
    CryptoBackingDevice:        '/'
    Device:                     /dev/nvme0n1p2
    DeviceNumber:               66306
    Drive:                      '/org/freedesktop/UDisks2/drives/SPCC_M_2e2_PCIe_SSD_200016485111205'
    HintAuto:                   false
    HintIconName:               
    HintIgnore:                 false
    HintName:                   
    HintPartitionable:          true
    HintSymbolicIconName:       
    HintSystem:                 true
    Id:                         by-id-nvme-SPCC_M.2_PCIe_SSD_200016485111205-part2
    IdLabel:                    
    IdType:                     crypto_LUKS
    IdUUID:                     29d216c6-9e8e-43f3-8c2d-ba38c650bd6a
    IdUsage:                    crypto
    IdVersion:                  1
    MDRaid:                     '/'
    MDRaidMember:               '/'
    PreferredDevice:            /dev/nvme0n1p2
    ReadOnly:                   false
    Size:                       968461701120
    Symlinks:                   /dev/disk/by-diskseq/3-part2
                                /dev/disk/by-id/nvme-SPCC_M.2_PCIe_SSD_200016485111205-part2
                                /dev/disk/by-id/nvme-SPCC_M.2_PCIe_SSD_200016485111205_1-part2
                                /dev/disk/by-id/nvme-nvme.126f-323030303136343835313131323035-53504343204d2e32205043496520535344-00000001-part2
                                /dev/disk/by-path/pci-0000:01:00.0-nvme-1-part/by-partnum/2
                                /dev/disk/by-path/pci-0000:01:00.0-nvme-1-part/by-uuid/29d216c6-9e8e-43f3-8c2d-ba38c650bd6a
                                /dev/disk/by-path/pci-0000:01:00.0-nvme-1-part2
                                /dev/disk/by-uuid/29d216c6-9e8e-43f3-8c2d-ba38c650bd6a
    UserspaceMountOptions:      
  org.freedesktop.UDisks2.Encrypted:
    ChildConfiguration:         []
    CleartextDevice:            '/org/freedesktop/UDisks2/block_devices/dm_2d0'
    HintEncryptionType:         
    MetadataSize:               2097152
  org.freedesktop.UDisks2.Partition:
    Flags:              0
    IsContained:        false
    IsContainer:        false
    Name:               
    Number:             2
    Offset:             316669952
    Size:               968461701120
    Table:              '/org/freedesktop/UDisks2/block_devices/nvme0n1'
    Type:               
    UUID:               

ErrorMan
() автор топика
Ответ на: комментарий от ErrorMan

Вот для udisksctl info --block-device /dev/nvme0n1

/org/freedesktop/UDisks2/block_devices/nvme0n1p2:
  org.freedesktop.UDisks2.Block:
    Configuration:              [('crypttab', {'name': <b'luks-29d216c6-9e8e-43f3-8c2d-ba38c650bd6a'>, 'device': <b'UUID=29d216c6-9e8e-43f3-8c2d-ba38c650bd6a'>, 'passphrase-path': <b'/crypto_keyfile.bin'>, 'options': <b'luks'>})]
    CryptoBackingDevice:        '/'
    Device:                     /dev/nvme0n1p2
    DeviceNumber:               66306
    Drive:                      '/org/freedesktop/UDisks2/drives/SPCC_M_2e2_PCIe_SSD_200016485111205'
    HintAuto:                   false
    HintIconName:               
    HintIgnore:                 false
    HintName:                   
    HintPartitionable:          true
    HintSymbolicIconName:       
    HintSystem:                 true
    Id:                         by-id-nvme-SPCC_M.2_PCIe_SSD_200016485111205-part2
    IdLabel:                    
    IdType:                     crypto_LUKS
    IdUUID:                     29d216c6-9e8e-43f3-8c2d-ba38c650bd6a
    IdUsage:                    crypto
    IdVersion:                  1
    MDRaid:                     '/'
    MDRaidMember:               '/'
    PreferredDevice:            /dev/nvme0n1p2
    ReadOnly:                   false
    Size:                       968461701120
    Symlinks:                   /dev/disk/by-diskseq/3-part2
                                /dev/disk/by-id/nvme-SPCC_M.2_PCIe_SSD_200016485111205-part2
                                /dev/disk/by-id/nvme-SPCC_M.2_PCIe_SSD_200016485111205_1-part2
                                /dev/disk/by-id/nvme-nvme.126f-323030303136343835313131323035-53504343204d2e32205043496520535344-00000001-part2
                                /dev/disk/by-path/pci-0000:01:00.0-nvme-1-part/by-partnum/2
                                /dev/disk/by-path/pci-0000:01:00.0-nvme-1-part/by-uuid/29d216c6-9e8e-43f3-8c2d-ba38c650bd6a
                                /dev/disk/by-path/pci-0000:01:00.0-nvme-1-part2
                                /dev/disk/by-uuid/29d216c6-9e8e-43f3-8c2d-ba38c650bd6a
    UserspaceMountOptions:      
  org.freedesktop.UDisks2.Encrypted:
    ChildConfiguration:         []
    CleartextDevice:            '/org/freedesktop/UDisks2/block_devices/dm_2d0'
    HintEncryptionType:         
    MetadataSize:               2097152
  org.freedesktop.UDisks2.Partition:
    Flags:              0
    IsContained:        false
    IsContainer:        false
    Name:               
    Number:             2
    Offset:             316669952
    Size:               968461701120
    Table:              '/org/freedesktop/UDisks2/block_devices/nvme0n1'
    Type:               
    UUID:               
/org/freedesktop/UDisks2/block_devices/nvme0n1:
  org.freedesktop.UDisks2.Block:
    Configuration:              []
    CryptoBackingDevice:        '/'
    Device:                     /dev/nvme0n1
    DeviceNumber:               66304
    Drive:                      '/org/freedesktop/UDisks2/drives/SPCC_M_2e2_PCIe_SSD_200016485111205'
    HintAuto:                   false
    HintIconName:               
    HintIgnore:                 false
    HintName:                   
    HintPartitionable:          true
    HintSymbolicIconName:       
    HintSystem:                 true
    Id:                         by-id-nvme-SPCC_M.2_PCIe_SSD_200016485111205
    IdLabel:                    
    IdType:                     
    IdUUID:                     
    IdUsage:                    
    IdVersion:                  
    MDRaid:                     '/'
    MDRaidMember:               '/'
    PreferredDevice:            /dev/nvme0n1
    ReadOnly:                   false
    Size:                       1024209543168
    Symlinks:                   /dev/disk/by-diskseq/3
                                /dev/disk/by-id/nvme-SPCC_M.2_PCIe_SSD_200016485111205
                                /dev/disk/by-id/nvme-SPCC_M.2_PCIe_SSD_200016485111205_1
                                /dev/disk/by-id/nvme-nvme.126f-323030303136343835313131323035-53504343204d2e32205043496520535344-00000001
                                /dev/disk/by-path/pci-0000:01:00.0-nvme-1
    UserspaceMountOptions:      
  org.freedesktop.UDisks2.NVMe.Namespace:
    EUI64:                      
    FormatPercentRemaining:     0
    FormattedLBASize:           (512, 0, 0x01)
    LBAFormats:                 [(512, 0, 0x01)]
    NGUID:                      
    NSID:                       1
    NamespaceCapacity:          2000409264
    NamespaceSize:              2000409264
    NamespaceUtilization:       1999345616
    UUID:                       
    WWN:                        nvme.126f-323030303136343835313131323035-53504343204d2e32205043496520535344-00000001
  org.freedesktop.UDisks2.PartitionTable:
    Partitions:         /org/freedesktop/UDisks2/block_devices/nvme0n1p3
                        /org/freedesktop/UDisks2/block_devices/nvme0n1p2
    Type:               dos

ErrorMan
() автор топика
Ответ на: комментарий от ErrorMan

Так, отлично. Теперь восстановление видится возможным. Пара вопросов.

  1. У Вас ESP и boot разделы на отдельном накопителе?
  2. Или диск был размечен в MBR и тип загрузки Legacy?

Насколько могу видеть, вероятно, второй вариант.

QsUPt7S ★★
()
Последнее исправление: QsUPt7S (всего исправлений: 1)
Ответ на: комментарий от QsUPt7S
  1. Вообще, когда ставил систему, был только один SSD M2 диск. Потом добавил HDD. Физических отдельных носителей нет

  2. Систему ставил как-то очень давно, не вспомню. Насколько помню - загрузка Legacy. Потратил не один час, чтобы заставить систему видеть SSD, да и установиться. Установка была через GUI с шифрованием диска, всё что можно было по умолчанию оставить - оставил, всё как из коробки и предложенные варианты.

Но лучше мне не верить…

ErrorMan
() автор топика
Ответ на: комментарий от ErrorMan

Но лучше мне не верить…

Насколько я могу предполагать, всё же использовалась MBR-разметка и тип загрузки Legacy, и нет отдельного boot-раздела. Смущает отсутствие первого раздела, и неразмеченное пространство в 302MiB перед вторым, а так же наличие собственного LUKS-заголовка у SWAP-раздела. Восстановление разметки не представляется сложным, но придётся переустанавливать загрузчик.

Тогда ещё такой вопрос. Насколько я понимаю, пароль от root-раздела у Вас запрашивается при загрузке, ещё до появления меню GRUB (если оно вообще отображается), но что насчёт swap-раздела? Он требует ввода пароля, или подключается автоматически?

QsUPt7S ★★
()
Ответ на: комментарий от anonymous

кина не будет

ventoy судя по докам (https://www.ventoy.net/en/doc_disk_layout.html) создал два раздела, из которых данные записал только на второй efi раздел размером 32MB. Поэтому LUKS header уцелел и находится через testdisk (и даже в случае перезагрузки нашелся бы). Осталось только восстановить таблицу разделов в исходном виде.

MirandaUser2
()
Последнее исправление: MirandaUser2 (всего исправлений: 1)

Быстрее заливай важные файлы в облако и переустанавливай систему. Вообще, не ставь этот очередной болгенос под именем Manjaro Linux, поставь Slackware лучше, ибо Патрег — Бох.

anonymous
()
Ответ на: комментарий от ErrorMan

Я ввожу пароль один раз, до grub, думаю автоматически

В таком случае, думаю где-то лежит ключ от этого раздела, и настроен автоматическое использование этого ключа вероятно через файл /etc/crypttab или /etc/crypttab.initramfs, так как обычно при шифровании swap-раздела не создают полноценный luks-контейнер, а настраивают systemd на пересоздание зашифрованного plain-контейнера со случайным ключём при каждой загрузке.

Ещё я заметил, что у Вас на другом накопителе vfat раздел на 100MiB. Возможно это ESP (EFI раздел для загрузчиков)? Дело в том, что если Вы используете и Windows, желательно сохранить тип загрузчика.

Вероятно, самым простым решением будет сохранить в новой MBR-разметке не только root-раздел, но и swap, а затем установить grub в новую MBR в legacy режиме, не переключая, однако, сам режим загрузки в настройках прошивки. В этом случае, если используется UEFI и на упомянутом vfat-разделе лежит стартер grub (других подходящих разделов не видно) то вероятно, он будет работать и с новой разметкой, так как стартер grub использует UUID luks раздела, а оно не изменится. Если же используется legacy, то сработает стартер с новой MBR-разметки и всё тоже должно загрузиться нормально.

Можете опубликовать начальный LBA и размер зашифрованного swap-раздела (вывод udisksctl info --block-device /dev/nvme0n1p3)?

QsUPt7S ★★
()
Ответ на: комментарий от QsUPt7S

Windows не использую, не нужно. Первоначально на машине стояла лишь Manjaro на одном физическом устройстве. Все другие физические накопители (2шт) были подключены позднее, что на них было - не помню, да и не важно, я на этих HDD хотел файловую помойку сделать. Нужно учитывать только один физический носитель, SSD.

P.S. Очень благодарю Вас за помощь. Надеюсь у нас всё получиться.

    ~  udisksctl info --block-device /dev/nvme0n1p3                                                                                                                                               INT ✘   
/org/freedesktop/UDisks2/block_devices/nvme0n1p3:
  org.freedesktop.UDisks2.Block:
    Configuration:              [('crypttab', {'name': <b'luks-1f368f7d-611b-4020-85ae-070f12f2d7ea'>, 'device': <b'UUID=1f368f7d-611b-4020-85ae-070f12f2d7ea'>, 'passphrase-path': <b'/crypto_keyfile.bin'>, 'options': <b'luks'>})]
    CryptoBackingDevice:        '/'
    Device:                     /dev/nvme0n1p3
    DeviceNumber:               66307
    Drive:                      '/org/freedesktop/UDisks2/drives/SPCC_M_2e2_PCIe_SSD_200016485111205'
    HintAuto:                   false
    HintIconName:               
    HintIgnore:                 false
    HintName:                   
    HintPartitionable:          true
    HintSymbolicIconName:       
    HintSystem:                 true
    Id:                         by-id-nvme-SPCC_M.2_PCIe_SSD_200016485111205-part3
    IdLabel:                    
    IdType:                     crypto_LUKS
    IdUUID:                     1f368f7d-611b-4020-85ae-070f12f2d7ea
    IdUsage:                    crypto
    IdVersion:                  1
    MDRaid:                     '/'
    MDRaidMember:               '/'
    PreferredDevice:            /dev/nvme0n1p3
    ReadOnly:                   false
    Size:                       55425269248
    Symlinks:                   /dev/disk/by-diskseq/3-part3
                                /dev/disk/by-id/nvme-SPCC_M.2_PCIe_SSD_200016485111205-part3
                                /dev/disk/by-id/nvme-SPCC_M.2_PCIe_SSD_200016485111205_1-part3
                                /dev/disk/by-id/nvme-nvme.126f-323030303136343835313131323035-53504343204d2e32205043496520535344-00000001-part3
                                /dev/disk/by-path/pci-0000:01:00.0-nvme-1-part/by-partnum/3
                                /dev/disk/by-path/pci-0000:01:00.0-nvme-1-part/by-uuid/1f368f7d-611b-4020-85ae-070f12f2d7ea
                                /dev/disk/by-path/pci-0000:01:00.0-nvme-1-part3
                                /dev/disk/by-uuid/1f368f7d-611b-4020-85ae-070f12f2d7ea
    UserspaceMountOptions:      
  org.freedesktop.UDisks2.Encrypted:
    ChildConfiguration:         []
    CleartextDevice:            '/org/freedesktop/UDisks2/block_devices/dm_2d1'
    HintEncryptionType:         
    MetadataSize:               2097152
  org.freedesktop.UDisks2.Partition:
    Flags:              0
    IsContained:        false
    IsContainer:        false
    Name:               
    Number:             3
    Offset:             968778371072
    Size:               55425269248
    Table:              '/org/freedesktop/UDisks2/block_devices/nvme0n1'
    Type:               
    UUID:  
ErrorMan
() автор топика
Ответ на: комментарий от QsUPt7S

Да, всё верно. Скопировал весь home на всякий случай).

Дело в том, что:
к системе очень привык,
сё готово к работе,
нет флешки под рукой,
завтра работу делать нужно,
а заново всё присобачивать к новой системе, пакеты всякие устанавливать и т.д. - у меня весь день уйдет, вместо работы.

ErrorMan
() автор топика
Ответ на: комментарий от ErrorMan

Да и опыт нужен подобный.

Вообще куча сервисов, ботов всяких постоянно крутятся, еще ядро не совсем стандартное и т.д. Куча всего завтра не запуститься, если систему переустановлю - и мучаться с этим еще хз сколько.

ErrorMan
() автор топика
Ответ на: комментарий от ErrorMan

Надеюсь у нас всё получиться.

Тогда немного погодите, я составлю сценарий для sfdisk. Пока советую скачать последний образ Manjaro, и записать на флешку, на случай если всё же мои догадки относительно режима загрузки неверны, и система не загрузится. В этом случае можно будет загрузиться в live-окружение с флешки и продолжить оттуда.

QsUPt7S ★★
()
Ответ на: комментарий от ErrorMan

Получается, всё же система была загружена в режиме UEFI, но ESP-раздел, по каким-то причинам не виден. Возможно, это как раз тот отсутствующий первый раздел, в 300MiB, о котором я упоминал выше. Тогда, на всякий случай сделаем гибридный режим, добавив в начало накопителя ESP-раздел, и установим туда стартер grub.

QsUPt7S ★★
()
Последнее исправление: QsUPt7S (всего исправлений: 1)

Автор, после того как всё починишь - есть способ проверить что оно действительно работает, ДО того как ты ребутнешься. Запускаешь qemu с прокинутым в него диском целиком, но в режиме snapshot (опция -snapshot - тогда он не будет ничего записывать на диск). Можно посмотреть как грузится система, в смысле что она сможет дойти до загрузки initramfs и увидеть рут-раздел. Потом она захочет делать fsck (т.к. файловая система используется хостом и виртуалку подумает что был аварийный ребут), это уже можно не смотреть - если оно смогло дойти до этого этапа то ты починил всё что можно было починить.

firkax ★★★★★
()
Ответ на: комментарий от QsUPt7S

У него нет возможности проверить развернуть бекап на другом компьютере? Всё-таки попытка восстановления будет только одна – а «править бекап» в теории можно больше одного раза.

anonymous
()
Ответ на: комментарий от ErrorMan

Да, всё верно. Скопировал весь home на всякий случай).

устанавливать и т.д. - у меня весь день уйдет, вместо работы.

Тогда уж хотя бы /etc/ следует скопировать, если для копии всего root раздела нет места.

MirandaUser2
()
Ответ на: комментарий от QsUPt7S
$ mount                                                                                                                                                                                      INT ✘   
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
dev on /dev type devtmpfs (rw,nosuid,relatime,size=16344972k,nr_inodes=4086243,mode=755,inode64)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755,inode64)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
/dev/mapper/luks-29d216c6-9e8e-43f3-8c2d-ba38c650bd6a on / type ext4 (rw,noatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=40,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=1544)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,nosuid,nodev,relatime,pagesize=2M)
tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/credentials/systemd-journald.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=700,inode64,noswap)
tmpfs on /run/credentials/systemd-cryptsetup@luks\x2d1f368f7d\x2d611b\x2d4020\x2d85ae\x2d070f12f2d7ea.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=700,inode64,noswap)
tmpfs on /run/credentials/systemd-cryptsetup@luks\x2d29d216c6\x2d9e8e\x2d43f3\x2d8c2d\x2dba38c650bd6a.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=700,inode64,noswap)
tmpfs on /tmp type tmpfs (rw,noatime,inode64)


!!!!!ТУТ Я ПРОПУСТИЛ СТРОКИ СО SNAP, НАЧИНАЮЩИЕСЯ НА /var/lib/snapd/snaps/ ИБО НЕ ВЛЕЗАЕТ В СООБЩЕНИЕ!!!!


binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
run on /run/snapd/ns type tmpfs (rw,nosuid,nodev,relatime,mode=755,inode64)
nsfs on /run/snapd/ns/mongo44-configurable.mnt type nsfs (rw)
nsfs on /run/snapd/ns/wireguard-dtp.mnt type nsfs (rw)
overlay on /var/lib/docker/overlay2/011bb2415ebceb978972e8dc61ed58b836d8a61c988cef2e25d4bc3b2c8ccceb/merged type overlay (rw,relatime,lowerdir=/var/lib/docker/overlay2/l/HXONDTG73YZD47XTYTE4ZPTW7A:/var/lib/docker/overlay2/l/PPTNTH6SABS2JMYJP3FYPGJF3F:/var/lib/docker/overlay2/l/DSIGX7XFZAUHBI673TYMLQ773V:/var/lib/docker/overlay2/l/G35E2NFIYTVPQNGU6L2XKYES7S:/var/lib/docker/overlay2/l/FBXTXSBJJQAZCI3YECZJ4QFIYY:/var/lib/docker/overlay2/l/4NETFN2Q47O3OXVW7DMPR5XAVX:/var/lib/docker/overlay2/l/YC2HQXPRT5WXRCWL34VZCOQQK3:/var/lib/docker/overlay2/l/DAVOC4ZNFOMZLDLJUKDXJFOSPR:/var/lib/docker/overlay2/l/AFBLLM436PX7MXPAF5FRDA2QB7:/var/lib/docker/overlay2/l/DRRA65M2XGOSM4TOBV5EIBHADD:/var/lib/docker/overlay2/l/6TJBRXI67LTTWU4USTHTPCNDKK:/var/lib/docker/overlay2/l/5IZ24I3AMFHGZOCY7OH4JGZDSF:/var/lib/docker/overlay2/l/7SQA7LOZBS2ICZRIHVTGOONIQR:/var/lib/docker/overlay2/l/ZPS5SXVMWRGEZZHWWTFWFGW2ZM:/var/lib/docker/overlay2/l/UIMRAHNDT3PGYKEU3LWZPU6HLH,upperdir=/var/lib/docker/overlay2/011bb2415ebceb978972e8dc61ed58b836d8a61c988cef2e25d4bc3b2c8ccceb/diff,workdir=/var/lib/docker/overlay2/011bb2415ebceb978972e8dc61ed58b836d8a61c988cef2e25d4bc3b2c8ccceb/work,index=off,uuid=null)
nsfs on /run/docker/netns/777d026b7515 type nsfs (rw)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=3273440k,nr_inodes=818360,mode=700,uid=1000,gid=1000,inode64)
portal on /run/user/1000/doc type fuse.portal (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
nsfs on /run/snapd/ns/telegram-desktop.mnt type nsfs (rw)
nsfs on /run/snapd/ns/skype.mnt type nsfs (rw)
/dev/sdb1 on /run/media/eman/7A45A4F35EA7E5F3 type ntfs3 (rw,nosuid,nodev,relatime,uid=1000,gid=1000,iocharset=utf8,uhelper=udisks2)                                                                                                                                          
ErrorMan
() автор топика
Ответ на: комментарий от QsUPt7S
$ cat /etc/fstab        
                                                                                                                                                                   
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=E47B-0230                            /boot/efi      vfat    umask=0077 0 2
/dev/mapper/luks-29d216c6-9e8e-43f3-8c2d-ba38c650bd6a /              ext4    defaults,noatime 0 1
/dev/mapper/luks-1f368f7d-611b-4020-85ae-070f12f2d7ea swap           swap    defaults,noatime 0 0
tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777 0 0
ErrorMan
() автор топика
Ответ на: комментарий от ErrorMan

Сори, я отвлёкся и ошибся, не /dev/boot/efi, а /boot/efi. Но судя по fstab, у Вас скорее всего не будет директории /boot/efi или она будет пуста.

QsUPt7S ★★
()
Последнее исправление: QsUPt7S (всего исправлений: 2)
Ответ на: комментарий от ErrorMan

Формирование разметки.

Для разметки накопителя применим сценарий утилиты sfdisk, причём оставим старые разделы на тех же местах что и были, но добавим новый раздел ESP для возможности гибридной загрузки. Для этого надо ввести следующие команды (с root-правами):

Тип разметки накопителя MBR:

echo 'label: dos' > /tmp/partTable.sfd

Будущий ESP (EFI System Partition - загрузочный раздел efi):

echo '/dev/nvme0n1p1 : start=2MiB, size=300MiB, type=uefi' >> /tmp/partTable.sfd

Текущий root-раздел. Сохранены начало и размер.

echo '/dev/nvme0n1p2 : start=302MiB, size=945763380KiB, bootable, type=linux' >> /tmp/partTable.sfd

Текущий swap-раздел. Сохранены начало и размер.

echo '/dev/nvme0n1p3 : start=946072628KiB, size=108252479, type=swap' >> /tmp/partTable.sfd

Выполним созданный сценарий:

cat /tmp/partTable.sfd | sfdisk /dev/nvme0n1

Попросим ядро обновить видимую таблицу разделов:

partprobe /dev/nvme0n1
QsUPt7S ★★
()
Ответ на: комментарий от ErrorMan

GRUB загружается в несколько этапов. Основное тело загрузчика, и все необходимые ему файлы, лежат в директории /boot/grub. Однако, для того чтобы получить доступ к ним необходимы драйвера файловой системы. В MBR-разметке, для загрузчика отводится всего 440 байт. Этого слишком мало для размещения драйверов, потому GRUB размещает в этом секторе только начальный образ boot.img, единственная задача которого, запустить core.img. core.img уже имеет гораздо больший размер, чем boot.img и в необходимом объёме умеет работать с файловыми системами. Этот образ находит нужный LUKS-раздел или файловую систему по её UUID, вшитому на этапе установки, в случае LUKS запрашивая пароль для расшифровывания, а затем подгружает необходимые модули из дериктории grub находящейся в корне этой ФС. В случае использования UEFI, необходимость в переходном этапе в виде boot.img пропадает, и core.img размещается на ESP, вместе с кодом для его запуска в виде файла EFI/<название_ос>/grubx64.efi (в случае архитектуры x86-64). Во время установки core.img размещается между концом MBR и началом первого раздела, или в случае GPT-разметки на специальном неформатированном разделе размером в 1MiB. По этой причине, рекомендуется располагать ESP с минимальным смещением в 1MiB, но мы взяли 2MiB, так как это потенциально позволит безболезненно создать специальный раздел для grub, необходимый для гибридной загрузки при возможном переходе на GPT-разметку.

QsUPt7S ★★
()
Ответ на: комментарий от ErrorMan

Установка загрузчика.

Насколько я могу судить, прошивка Вашей системы настроена на работу либо в UEFI-режиме, либо в гибридном режиме (сочетание Legacy и UEFI, то есть, может загрузиться как c MBR, так и ESP).

Установим grub в MBR:

grub-install --recheck --target=i386-pc /dev/nvme0n1

Теперь создадим файловую систему на ESP. Это обязательно должна быть FAT.

mkfs.fat -i e47b0230 -n ESP /dev/nvme0n1p1

Создадим директорию /boot/efi и примонтируем к ней корень ESP:

mkdir -p /boot/efi
mount --options defaults,noatime /dev/nvme0n1p1 /boot/efi

Далее установим grub на ESP:

grub-install --bootloader-id=Manjaro --recheck --target=x86_64-efi

Наконец обновим конфигурацию grub, выполнив:

grub-mkconfig --output /boot/grub/grub.cfg

Теперь можно выполнить тестирование загрузки системы.

QsUPt7S ★★
()
Последнее исправление: QsUPt7S (всего исправлений: 2)
Ответ на: комментарий от ErrorMan

P.S.: У Вас куда-то пропал ESP, которого нет в листинге lsblk и выводе mount но который виден в fstab (видимо это как раз таки отсутствующий первый раздел в 300MiB). Кроме того, root и swap разделы имеют необычные размеры, так как обычно установщики и утилиты подобные fdisk выравнивают границы разделов по 1MiB.

QsUPt7S ★★
()
Последнее исправление: QsUPt7S (всего исправлений: 2)
Ответ на: комментарий от QsUPt7S

Зачем partprobe, ведь sfdisk итак дёрнет ioctl BLKRRPART. И, ИМХО, эти команды у ТС не сработают, sfdisk проверит, что один из разделов на /dev/nvme0n1 смонтирован и откажется запускаться. Ему, если запускать из работающей системы, нужно дать опцию --no-reread[\inline]. А перечитывать разделы командой partx.

Вобще ситуация не понятная, базово ядро оказывается перечитывать таблицу разделов, если смонтровано, то есть в /proc/partitions должны были остаться старые разделы, но /dev/nvme0n1p0 куда-то исчез, а остальные остались.

Вобще, после sfdisk вызывать бы вируталку, чтобы там попробовать прочитать что-то из /dev/nvme0n1p2, чтобы навернякак проверить, что границы раздела правильны. Но, там LUKS, LVM, хрен проверишь. А иначе получается "прыжок веры", если мы ошиблись с размткой, то после обновления границ разделов в ядре (/proc/partitions) для /dev/nvme0n1p2 будет непонятно что.

И я не совсем понял, вы создаёте /dev/nvme0n1p1 -- "Будущий ESP", а где вы его преобразуете в ESP в GPT таблице, BIOS ведь ищет ESP по типу раздела, или вы предлагаете в BIOS включить Legacy режим загрузки?

mky ★★★★★
()
Ответ на: комментарий от mky

И я не совсем понял, вы создаёте /dev/nvme0n1p1 — «Будущий ESP», а где вы его преобразуете в ESP в GPT таблице, BIOS ведь ищет ESP по типу раздела, или вы предлагаете в BIOS включить Legacy режим загрузки?

как я понял, по предложенному сценарию:

создается msdos таблица разделов, а не GPT ('label: dos');
у esp раздела выставляется тип efi (type=uefi);
grub устанавливается в efi раздел.

Т.о. должна сработать загрузка с msdos таблицы разделов в EFI режиме.

При этом grub также устанавливается в MBR (+core.img в промежуток медлу MBR и первым разделом), чтобы в legacy режиме загрузка тоже работала.

MirandaUser2
()
Ответ на: комментарий от MirandaUser2

должна сработать загрузка с msdos таблицы разделов в EFI режиме.

Ну, вроде, должна. Вроде, спецификация efi такое разрешает, но насколько это поддерживают производители BIOS...

ИМХО, нужно было попробовать посмотреть dmesg, чтобы понять, был вобще первый раздел. Ещё можно было попробовать запустить ″gdisk -l″, чтобы посмотреть, не сохранилась ли копия GPT (в конце диска). Как-то странно, что у ТС накопитель в MBR-only разметке, если всё через графический инсталлятор делалось.

mky ★★★★★
()
Ответ на: комментарий от mky

В этом сообщении Как восстановить разметку на диске на запущенной системе? (комментарий)

  org.freedesktop.UDisks2.PartitionTable:
    Partitions:         /org/freedesktop/UDisks2/block_devices/nvme0n1p3
                        /org/freedesktop/UDisks2/block_devices/nvme0n1p2
    Type:               dos
Если верить выводу udisksctl info --block-device /dev/nvme0n1 , то msdos таблица была.

При этом загрузка в EFI режиме судя по
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)

MirandaUser2
()
Последнее исправление: MirandaUser2 (всего исправлений: 1)
Ответ на: комментарий от mky

Но, там LUKS, LVM, хрен проверишь.

У ТС не LVM, а LUKS-разделы поверх простой MBR-разметки.

навернякак проверить, что границы раздела правильны.

Из того что видно, начало /dev/nvme0n1p3 следует сразу за концом /dev/nvme0n1p2, что, конечно, косвенный показатель, но верность границ хорошо подтверждается тем, что заголовки LUKS, приходящиеся на начало разделов, видимы и утилитой cryptsetup, так как ТС смог сделать их бэкапы, и утилитами lsblk и udisksctl хотя последние берут информацию у ядра, а не с накопителя напрямую.

И я не совсем понял, вы создаёте /dev/nvme0n1p1 – «Будущий ESP», а где вы его преобразуете в ESP в GPT таблице, BIOS ведь ищет ESP по типу раздела, или вы предлагаете в BIOS включить Legacy режим загрузки?

ESP необязательно должен быть в GPT-разметке, для ESP в MBR-разметке тип раздела 0xEF.

Вобще ситуация не понятная

Ситуация действительно неясная, особенно с пропавшим первым разделом. На то, что этот раздел был, указывает большое количество факторов: нумерация оставшихся разделов, неразмеченное пространство подходящего объёма перед /dev/nvme0n1p2, доступность EFI (хотя последнее может быть и при загрузке в гибридном режиме), наконец присутствие соответствующей записи в fstab. Куда делся этот раздел вообще неясно, так как атрибут fs_passno для него выставлен в 2, то загрузиться без него в обычном порядке не получилось бы, поэтому он был отмонтирован (ни lsblk, ни mount его не показывают) и удалён из таблицы разделов уже после загрузки системы. Возникает впечатление, что таблица разделов изменялась ещё до «вмешательства» со стороны ventoy.

QsUPt7S ★★
()
Последнее исправление: QsUPt7S (всего исправлений: 1)
Ответ на: комментарий от QsUPt7S

Про «наверняка проверить», было больше не про то, что написаные в этом топике границы неправильные, а про возможные ошибки ТС. Он может не копи-пастой, а руками перебивать и опечататься. Или ещё что.

Наверно, вместо виртуалки можно было попробовать ″losetup -r -P /dev/loop0 /dev/nvme0n1″ и на /dev/loop0p2 вызвать ″cryptsetup″. Правда, не проверял, как себя ведёт ядро в таком случае, будет ли для loop-устройства перечитана таблица разделов, если /dev/nvme0n1p2 смонтирован.

А ТС типа «всё сделал» и куда-то пропал. Ему sfdisk должен был сообщить об ошибке, остальные команды тоже ругаться, так как /dev/nvme0n1p1 нет. Что он сделал непонятно.

mky ★★★★★
()