Почему lsblk не отображает диск, на котором установлена Windows 11? (Я могу загрузиться в Windows, так что я знаю, что диск работает)

Вопрос или проблема

Я использовал dd, чтобы записать образ SystemRescue ( https://www.system-rescue.org/ ) на USB-накопитель. Я использовал этот USB-накопитель для загрузки на Компьютере#1, а затем использовал dd, чтобы клонировать внутренний системный диск на второй USB-накопитель. У меня не было никаких проблем.

Я вставил SystemRescue USB-накопитель в Компьютер#2 и успешно загрузился в SystemRescue Linux. (Оба компьютера работают нормально, но я использую SystemRescue live Linux дистрибутив, потому что, как я понимаю, нежелательно или невозможно пытаться делать сырое бинарное клонирование диска с в данный момент смонтированной файловой системой.)

Мой план состоял в том, чтобы клонировать внутренний системный диск Компьютера#2, на котором установлена Windows 11, на третий USB-накопитель (в качестве резервного копирования, если я захочу восстановить его позже), а затем клонировать то, что я ранее склонировал на второй USB-накопитель, на внутренний системный диск Компьютера#2, перезаписывая Windows 11. Всё это будет выполнено с помощью dd через SystemRescue live Linux дистрибутив.

Проблема, с которой я столкнулся, заключается в том, что я не могу завершить шаги, упомянутые в предыдущем абзаце, потому что внутренний диск Компьютера#2, на котором находится Windows 11, не отображается, когда я набираю lsblk. Я также пробовал lsblk -a. Я также попытался отключить Быстрый запуск Windows 11 на случай, если это могло бы вызывать проблемы. Я все еще не могу сделать так, чтобы диск отображался в списке lsblk. (Я не пытался ничего монтировать, потому что, как я понимаю, это не нужно, если я делаю сырое бинарное копирование с помощью dd.) lsblk показывает второй внутренний диск Компьютера#2, но это не тот, который нужен (он 512ГБ вместо 256ГБ диска, на котором установлено Win11). В компьютере два внутренних диска: первый из них — SSD с Windows 11, а второй — старый HDD, но lsblk показывает только второй. (lsblk также показывает 32ГБ USB-накопитель, но Win11 там точно нет.)

Я знаю, что диск с Windows 11 работает, потому что я все еще могу загружаться в Windows 11. Диск с Windows указан как “NVMe INTEL” в информации о системе Windows; он имеет 256ГБ. Также есть второй внутренний диск на 512ГБ, “TOSHIBA”.

Во время загрузки SystemRescue на Компьютере #2 показывается сообщение: “A start job is running for /dev/tpmrm0”, которое прерывается через 90 секунд. Но, кроме этого, загрузка кажется нормальной.

Компьютер #2 — это старый компьютер Dell, OptiPlex 3050, Intel Core i5, 7-го поколения. Линукс-дистрибутив на USB-накопителе — “systemrescue-11.03-amd64.iso”. Проблема с драйверами? Или с DRM Windows? Будет ли лучше использовать другой Линукс-дистрибутив? Мне просто нужно что-то, что может увидеть диск и запустить dd. Мне нужно ввести что-то для параметра dd if=, поэтому проблема в том, что lsblk не показывает имя устройства, “/dev/???”.

lsblk -a -o name,label,size,fstype,model

loop0 854M squashfs
sda 465G TOSHIBA

Обновление:
Комментарий от @frostschutz посоветовал мне проверить dmesg, где я нашел сообщения, говорящие о том, что следует изменить режим с RAID на AHCI в настройках BIOS. После этого диск теперь отображается как “nvme0n1”.

Ответ или решение

Проблема, с которой вы столкнулись при использовании команды lsblk для распознавания внутрений диска с установленной Windows 11, является весьма распространенной при работе с модернизированными системами хранения данных, особенно в тех случаях, когда используются SSD какие-нибудь новые интерфейсы хранения данных, такие как NVMe. Давайте рассмотрим подробнее причину возникновения этой проблемы, возможные пути её решения и что следует знать для успешного применения решений на практике.

Теория:

Системы хранения данных NVMe (Non-Volatile Memory Express) становятся все более популярными из-за их высокой скорости и надежности по сравнению с традиционными жесткими дисками (HDD) и даже стандартными SSD на базе интерфейса SATA. Однако при этом они могут вызвать некоторые проблемы совместимости, особенно в контексте взаимодействия с системами на базе Linux. Давайте подробнее рассмотрим причины и объяснения, почему диск может не отображаться при выполнении команды lsblk.

  1. Режим контроллера хранения: В большинстве современных BIOS/UEFI для NVMe-дисков предусмотрено несколько режимов работы, таких как AHCI и RAID. При установке Windows зачастую используется режим RAID, что может вызвать проблемы с обнаружением дисков в Linux, если ядро системы не поддерживает соответствующие драйвера для этого режима.

  2. Поддержка Drm и TPM: Современные операционные системы, такие как Windows 11, используют TPM (Trusted Platform Module) и другие механизмы безопасности, которые могут взаимодействовать с режимом диска. Это может привести к ограничениям на уровне BIOS/UEFI, что препятствует правильному обнаружению дисков в Linux-среде без дополнительной настройки.

  3. Совместимость драйверов: Драйверы, поддерживаемые вашей дистрибуцией Linux, могут не покрывать все возможные варианты взаимодействия с новыми интерфейсами хранения и устройствами. Если соответствующий драйвер отсутствует или не загружен, диск не будет отображаться.

Пример:

В описанной вами ситуации вы использовали SystemRescue, дистрибуцию на базе Linux, для клонирования дисков. Не обнаружив диск с Windows 11 через lsblk, вы попытались выполнить несколько основных шагов по устранению неполадок, таких как отключение Fast Startup в Windows и проверка сообщений о запуске системы (dmesg). Эти шаги уместны, но не всегда эффективны, если проблема заключается в режиме контроллера RAID.

Вы упомянули, что изменение режима с RAID на AHCI через BIOS привело к успешному отображению диска как nvme0n1. Это стандартное решение для подобных случаев, поскольку режим AHCI поддерживается большинством современных дистрибуций Linux, что обеспечивает корректное обнаружение NVMe-дисков.

Применение:

Что можно делать в подобных случаях? Вот некоторые шаги, которые можно предпринять для успешного разрешения проблемы с неотображаемым диском:

  1. Проверка настроек BIOS/UEFI: Убедитесь, что режим контроллера диска соответствует поддерживаемому вашей Linux-системой. Если выбран RAID-режим, попробуйте переключиться на AHCI, если это возможно. Способы изменения этих настроек зависят от модели материнской платы и версии BIOS.

  2. Обновление дистрибутива Linux: Если ваш дистрибутив Linux не поддерживает ваше оборудование и работа с BIOS/UEFI не привела к желаемому результату, рассмотрите возможность использования другой Linux-системы, более современной или специально предназначенной для работы с NVMe-дисками.

  3. Обновление прошивки: Убедитесь, что прошивка вашего BIOS/UEFI актуальна. Обновление может часто добавлять поддержку новых технологий и улучшить совместимость устройств.

  4. Загрузка необходимых модулей ядра: Проверьте, загружены ли необходимые модули ядра для работы с NVMe. Это можно сделать с помощью команд lsmod и modprobe.

  5. Проверка логов системы для диагностики: Используйте dmesg и другие системные логи для получения диагностической информации, которая может подсказать причину, по которой устройство не распознается.

  6. Изучение документации и поддержка сообщества: Воспользуйтесь документацией вашей системы и протоколами сообществ для поиска и получения информации о совместимости конкретного оборудования с Linux.

В случае с вашим окружением, после внесения изменений в BIOS, вы смогли успешно загрузить драйвер и используемый NVMe-диск. Это ярко иллюстрирует ключевое значение правильного выбора режима контроллера и обновления BIOS для обеспечения системы мультизагрузочных возможностей и совместимости с сетью внешних устройств хранения.

Оцените материал
Добавить комментарий

Капча загружается...