Вопрос или проблема
При наличии двойной загрузки, 1 SSD для Windows, 1 для Linux,
можно смонтировать диск/раздел ext4 Linux в WSL на Windows 11 с помощью:
wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>
Существует ли способ правильно смонтировать раздел, зашифрованный с помощью LUKS?
Для двойной загрузки (находясь в системе Linux) рекомендации:
- проверьте идентификатор пользователя, которому принадлежит раздел (это можно сделать в WSL позже).
- проверьте размеры разделов с помощью
lsblk
, так как они могут иметь совершенно разные имена в WSL, чтобы позже идентифицировать зашифрованный.
в Powershell [администратор]
# идентифицировать диск
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
# смонтировать диск (DiskPath: \\.\PHYSICALDRIVE*)
wsl --mount <DiskPath> --bare
в WSL:
# 1
sudo apt-get update
sudo apt-get install cryptsetup
# 2 идентифицировать интересующий раздел
lsblk
# 3 Монтирование зашифрованного раздела
sudo cryptsetup open /dev/sdXn cryptpart
# 4 создать точку монтирования и смонтировать
sudo mkdir /mnt/your-mount-point
sudo mount /dev/mapper/cryptpart /mnt/your-mount-point
# 5 проверить владение разделом и вошедшим пользователем
ls -l /mnt/your-mount-point/
id USERNAME
# если они совпадают, продолжайте читать/изменять файлы
# 7 Размонтировать
sudo umount /mnt/your-mount-point
sudo cryptsetup close cryptpart
если идентификатор, владеющий смонтированным разделом, отличается от идентификатора вошедшего пользователя WSL
# создать пользователя с идентификатором
# владельца /mnt/your-mount-point
EXISTING_UID=<id-of-owner-of-files-in-mount-point>
NEWUSER=<your_username> # имя может отличаться от имени в системе Linux
# использовать однострочник, убрав \
# этот пример требует установленного zsh
useradd --create-home --shell /usr/bin/zsh --user-group --groups \
adm,dialout,cdrom,floppy,sudo,audio,dip,video,plugdev,netdev --uid \
$EXISTING_UID --password $(read -sp Password: pw ; echo $pw | openssl passwd \
-1 -stdin) $NEWUSER
# изменить пользователя по умолчанию, для целей vscode, изменить `/etc/wsl.conf`
# добавление имени пользователя, когда его идентификатор не 1000
[user]
default=username-when-its-id-is-not-1000
Ответ или решение
Как смонтировать зашифрованный раздел ext4 из Linux в WSL
С учетом современного многоуровневого управления данными и безопасности, работа с зашифрованными разделами становится все более актуальной для пользователей, которые используют такие системы, как Windows и Linux в режиме двойной загрузки. В данной статье мы рассмотрим, как правильно смонтировать зашифрованный раздел, используя Windows Subsystem for Linux (WSL), на примере системы с разделом ext4, зашифрованным с помощью LUKS.
Предварительная подготовка
-
Проверка прав доступа: Прежде всего, вам нужно убедиться, что у вас есть достаточные права для доступа к данному разделу. Можно сделать это, определив ID пользователя, который владеет разделом.
-
Определение размеров разделов: Используйте команду
lsblk
в WSL, чтобы узнать размеры и названия всех доступных разделов. Это поможет вам идентифицировать зашифрованный раздел для дальнейшей работы.
Процесс монтирования
Шаг 1: Идентификация диска в Windows PowerShell
Откройте PowerShell от имени администратора и выполните следующую команду для получения информации о дисках:
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
Это позволит вам узнать путь к диску (например, \\.\PHYSICALDRIVE0
), который позже понадобится для монтирования в WSL.
Шаг 2: Монтирование диска в WSL
В PowerShell выполните команду для монтирования диска в WSL:
wsl --mount <DiskPath> --bare
Замените <DiskPath>
на путь, полученный на предыдущем шаге. Это монтирует диск в WSL без назначения файла системы.
Шаг 3: Установка необходимых инструментов
Теперь вам нужно установить cryptsetup
, если он еще не установлен, для работы с LUKS:
sudo apt-get update
sudo apt-get install cryptsetup
Шаг 4: Определение раздела и его открытие
Используйте команду lsblk
для отображения списка всех разделов и найдите нужный зашифрованный раздел. Затем выполните следующую команду:
sudo cryptsetup open /dev/sdXn cryptpart
Замените /dev/sdXn
на идентификатор вашего зашифрованного раздела.
Шаг 5: Создание точки монтирования и монтирование
Создайте директорию, которая будет служить точкой монтирования, и затем смонтируйте раздел:
sudo mkdir /mnt/your-mount-point
sudo mount /dev/mapper/cryptpart /mnt/your-mount-point
Шаг 6: Проверка прав доступа
После успешного монтирования проверьте права собственности на данные в вашем каталоге:
ls -l /mnt/your-mount-point/
id USERNAME
Замените USERNAME
на ваше имя пользователя. Если ID владельца совпадает с вашим, вы можете безопасно работать с файлами.
Шаг 7: Размонтирование
Не забудьте размонтировать раздел и закрыть LUKS после завершения работы:
sudo umount /mnt/your-mount-point
sudo cryptsetup close cryptpart
Создание пользователя с правами владельца (при необходимости)
Если ID владельца монтируемого раздела отличается от вашего, вы можете создать нового пользователя с нужным ID, чтобы избежать проблем с доступом:
EXISTING_UID=<идентификатор-владельца-файлов>
NEWUSER=<ваше_имя_пользователя>
# Убедитесь, что у вас установлен zsh
useradd --create-home --shell /usr/bin/zsh --user-group --groups \
adm,dialout,cdrom,floppy,sudo,audio,dip,video,plugdev,netdev --uid \
$EXISTING_UID --password $(read -sp Password: pw ; echo $pw | openssl passwd -1 -stdin) $NEWUSER
Заключение
Работа с зашифрованными разделами в WSL может показаться сложной на первый взгляд, но следуя указанным шагам, вы сможете успешно настроить доступ к своим данным. Такой подход не только обеспечивает безопасность ваших файлов, но и позволяет использовать лучшие функции обеих операционных систем. Рекомендуется временно отключать доступ к этим данным, когда они не нужны, а также регулярно проверять права доступа для повышения безопасности.