Как смонтировать каталог Ubuntu /home на раздел ext4 в Windows 10 WSL?

Как смонтировать каталог Ubuntu /home на раздел ext4 в Windows 10 WSL?

Я хочу смонтировать мой реальный /homeкаталог Ubuntu, который находится в разделе ext4 на моем диске, в WSL.

В принципе, мне нужно все оттуда, и я хочу иметь лучшую совместимость с ext4 и некоторыми инструментами. Также см.Эта проблемадля некоторых примеров проблем при редактировании файлов в существующем /homeкаталоге WSL Ubuntu.

Возможно ли это? Как?

решение1

На момент, когда был задан этот вопрос, в WSL это было невозможно, поскольку не было доступа кнастоящийразделы ext4.

Однако проблемы, упомянутые в этой проблеме Github, были решены путем предоставления доступа к файловой системе WSL (в то время WSL1, но впоследствии также WSL2) через \\wsl$\<distroname>\. Это позволяет безопасно редактировать эти файлы. Также см. соответствующий пост в блоге Microsoft примерно того времени,Не изменяйте файлы Linux с помощью приложений и инструментов Windows..

И в Windows 11 (но не в Windows 10) теперь у вас есть возможность монтировать необработанные диски в WSL2 с помощью wsl --mount. Как только необработанный диск станет доступен для WSL2, вы можете sudo mount(или через /etc/fstab) фактический раздел ext4 на этом диске, содержащий ваш /home/.

Предостережения:

  • Вы должны (в настоящее время) вручную wsl --mountсоздать необработанный разделдозапуск дистрибутива (например, Ubuntu) в WSL. Если вы этого не сделаете, то у вас не будет /homeпри запуске WSL, и он, скорее всего, просто не сработает.

  • Если я правильно помню, в настоящее время нельзя смонтировать диск, который уже используется в Windows. Так что раздел ext4 должен быть, по крайней мере, на диске, отличном от диска Windows.

решение2

Экспортируйте домашний раздел с помощью Samba и смонтируйте его в Windows (вот как я это делаю).

Для ясности: если вы не хотите монтировать /homeдиск, то создайте /homeсимволическую ссылку на него \\yourmachine\home(предполагая, что вы экспортировали свой домашний диск как /home).

Например, указав /Documentsна //Bliss/Documents
cygwin+bash, я вижу (в корневом каталоге):Documents -> //Bliss/Documents/

В Windows с помощью dirэтот файл выглядит так: <SYMLINKD> Documents [\\Bliss\Documents]
(Bliss — это имя моего сервера).

в Windows я создаю это в root, выполнив cd для root, затем:
(из bash -- обратите внимание на одинарные кавычки вокруг пути Windows с обратными косыми чертами)

cmd /c mklink /d Documents '\\Bliss\Documents'

Связанный контент