Как исследовать файл ext4.vhdx и посмотреть, что внутри, при использовании wsl2

в настоящее время я использую wsl2, и я замечаю, что для ext4.vhdx требуется значительный объем дискового пространства, как будто я знаю, что это система управления файлами Ubuntu, но я не очень понимаю, что внутри, поэтому я хочу заглянуть внутрь и удалить все ненужные файлы, как мне это сделать? как я знаю, wsl2 не освобождает использованное дисковое пространство обратно в хост-систему (я использую Windows 10), поэтому я хочу увидеть, какое дисковое хранилище занимает Ubuntu.

0
задан 29 April 2021 в 19:28

2 ответа

Я не могу воспроизвести симптом, который у вас есть при доступе к серверу SMB на Mac. Поскольку Samba работает в обратном направлении (Mac к Linux), используйте что-то другое для доступа к Mac.

На Mac: Системные настройки > Общий доступ > Включить удаленный вход

В Linux: Open Caja > Обзор сети > Вы должны видеть имя хоста Mac с прикрепленной меткой (удаленный вход). Нажмите на это, укажите имя пользователя и пароль, и у вас должен быть такой доступ:

enter image description here

-121--915301-

Здравствуйте и добро пожаловать на форум!

Возможно, стоит рассмотреть возможность того, что ваша проблема не в DNS, может быть, что ваше сетевое соединение просто ненадежно по какой-либо причине, что некоторые пакеты теряются. О том, что ssh сеансы выживают, нам мало что говорит, потому что ssh сеанс использует TCP так, что может работать, даже если много пакетов потеряно. DNS, с другой стороны, использует UDP, поэтому если некоторые UDP-пакеты (входящие или исходящие) потеряны, это может привести к сбоям DNS.

Тестирование с использованием ping, как вы сделали, является хорошей идеей, может быть стоит сделать больше из этого, например, ping чаще, что раз в секунду, чтобы увидеть, есть ли иногда потери пакетов и если время этого коррелирует с проблемами DNS. Также стоит отметить, что ping включает в себя другой протокол (ICMP), может случиться, что есть какая-то проблема с UDP, но что ping работает в любом случае. Тогда, возможно, стоит запустить тесты с использованием UDP, что можно сделать, например, с помощью инструмента iperf3 .

Если вы сами управляете DNS-сервером, то вы можете следить за этим, чтобы увидеть, поступает или нет DNS-запрос, и увидеть, послан ли ответ с DNS-сервера.

Вы также можете попробовать отслеживать входящий и исходящий сетевой трафик локально, используя что-то вроде tcpdump или tshark , чтобы убедиться, что DNS-запрос отправлен, и проверить, можно ли увидеть ответ от DNS-сервера.

В любом случае это некоторые идеи, я надеюсь, что некоторые из них могут быть полезны. Удачи!

-121--915149-

@ thomas-ward ответ правильный, но мне кажется, что в вашем вопросе есть дополнительный «вопрос», на который все еще нужно ответить.

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

sudo find / -xdev | less

будут найдены все файлы в файловой системе ext4 , подключенной как root (/), но не файлы на подключенных дисках NTFS/Windows ( -xdev исключает другие файловые системы).

Вы также можете видеть места хранения, используемые этими же файлами:

sudo du -hdx

Если эта сумма отличается от размера файла ext4.vhdx , то да, как вы уже подозреваете, у вас, вероятно, есть неиспользованное пространство. Как вы упомянули в вашем вопросе, WSL будет увеличивать этот файл по мере необходимости, но не будет автоматически сокращать его при удалении файлов.

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

wsl --shutdown
# At this point, it is recommended that you back up your ext.vhdx and delete the backup once you have confirmed the other commands are successful.
diskpart
# open window Diskpart
select vdisk file="C:\WSL-Distros\…\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

Примечание: Альтернативным способом прямого доступа к vhdx было бы раскручивание новой виртуальной машины на базе Linux на Hyper-V и добавление этого виртуального диска (или его копии) в экземпляр. Невозможно проверить его непосредственно в Windows, так как Windows не понимает файловую систему ext4.

1
ответ дан 7 May 2021 в 17:42

Непосредственное исследование VHDX в Windows не рекомендуется, поскольку он содержит файловую систему ext4 .

По сути, VHDX содержит всю операционную систему Ubuntu, плюс любые дополнительные файлы / программы / библиотеки / и т. Д. вы установили на него WSL. Это весь «жесткий диск» системы, который WSL2 использует с виртуализацией для запуска среды Ubuntu WSL. По сути, любой файл, к которому вы можете перейти в WSL и увидеть (например, / usr / lib / ... ), находится в VHDX.

1
ответ дан 7 May 2021 в 17:42

Другие вопросы по тегам:

Похожие вопросы: