Я хочу смонтировать мой реальный /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'