Перейти к содержимому

Ext4 vhdx что это за файл

  • автор:

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

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

2 ответа

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

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

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

enter image description here

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2 ответа

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

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

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

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

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

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

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

Investigating ext4.vhdx File in WSL2: A Guide to Understanding and Managing Disk Space Usage

Avatar photoBy Brent Cohen July 23, 2023 July 23, 2023

Ubuntu 2

The Windows Subsystem for Linux (WSL2) has emerged as a powerful tool for developers and IT professionals who need to run Linux environments on Windows machines. One of the key components of WSL2 is the ext4.vhdx file, which serves as the virtual hard disk for the Linux environment. This article will guide you through the process of investigating the ext4.vhdx file in WSL2 to understand and manage disk space usage.

The ext4.vhdx file is a virtual hard disk file used by the Windows Subsystem for Linux (WSL2) to store the ext4 filesystem. It dynamically grows as you add more data to your Linux environment but doesn’t shrink automatically when you delete files. You can investigate the contents of the file by using commands like sudo find and sudo du , and manually shrink it using the Optimize-VHD command in PowerShell. Always remember to back up the file before making any changes.

Understanding the ext4.vhdx File

The ext4.vhdx file is a Virtual Hard Disk (VHD) file that contains the ext4 filesystem used by WSL2. This file grows dynamically as you add more data to your Linux environment. However, it doesn’t shrink automatically when you delete files, which can lead to a discrepancy between the actual data usage and the size of the ext4.vhdx file.

Investigating the Contents of the ext4.vhdx File

To investigate the contents of the ext4.vhdx file and understand what disk storage it holds, follow these steps:

Step 1: Open WSL2 by running the command prompt or PowerShell and typing wsl .

Step 2: To view all the files in the ext4 filesystem, run the command sudo find / -xdev | less . Here, sudo gives you root privileges, find / searches the entire filesystem, -xdev prevents the command from descending into directories on other filesystems, and | less paginates the output.

Step 3: To see the storage used by these files, use the command sudo du -hdx / . The du command estimates file and directory space usage. The -h option provides human-readable output (in KB, MB, GB), -d specifies the maximum depth of directories to show, and x skips directories on different file systems.

Managing Disk Space Usage

If the amount of storage used differs from the size of the ext4.vhdx file, it indicates that there may be unreclaimed space. To manually shrink the ext4.vhdx file, you can follow these steps:

Step 1: Close all WSL2 sessions.

Step 2: Open PowerShell as an administrator and navigate to the location of the ext4.vhdx file.

Step 3: Run the command Optimize-VHD -Path .\ext4.vhdx -Mode Full . This command attempts to reduce the physical size of the VHD file on the disk.

Please note that it’s recommended to back up the ext4.vhdx file before proceeding with these steps.

Conclusion

Understanding and managing the ext4.vhdx file in WSL2 is crucial for maintaining optimal disk space usage. By following the steps outlined in this guide, you can effectively investigate the contents of the ext4.vhdx file and manage its size. Always remember to back up your data before making any significant changes to your system.

WSL2 stands for Windows Subsystem for Linux 2. It is a compatibility layer provided by Microsoft that allows running a Linux environment on Windows machines.

The ext4.vhdx file serves as the virtual hard disk for the Linux environment in WSL2. It contains the ext4 filesystem used by WSL2.

No, the ext4.vhdx file does not shrink automatically when files are deleted. This can lead to a discrepancy between the actual data usage and the size of the file.

To investigate the contents of the ext4.vhdx file, you can open WSL2 and use commands like sudo find / -xdev | less to view all the files in the ext4 filesystem and sudo du -hdx / to see the storage used by those files.

If there is a discrepancy between the storage used and the size of the ext4.vhdx file, it may indicate unreclaimed space. You can manually shrink the file by closing all WSL2 sessions, opening PowerShell as an administrator, navigating to the location of the ext4.vhdx file, and running the command Optimize-VHD -Path .\ext4.vhdx -Mode Full .

Yes, it is recommended to back up the ext4.vhdx file before attempting to shrink it or making any significant changes to your system. This ensures that your data is protected in case of any unforeseen issues.

Откуда неадекватный размер ext4.vhdx?

Доброго дня. У меня есть пара проектов, которые я разрабатываю в винде под wsl2. Сами проекты весьма небольшие, но вот недавно заметил, что место на диске начинает кончаться. Выяснилось, что виноваты два файла:
1. . /Docker/wsl/data/ext4.vhdx (30 gb)
2. . /ubuntu/ext4.vhdx (13 gb)

Первый файл относится к Docker Desktop, второй к самому дистрибутиву. Мои проекты со всей обвязкой весят не больше гига. Откуда взялись такие неадекватные размеры и как с этим бороться?

  • Вопрос задан более двух лет назад
  • 7375 просмотров
  • Facebook
  • Вконтакте
  • Twitter

Разобрался. Пишу тут для тех, кто столкнется с той же проблемой.

Решение для очистки в Docker Desktop.
1. Устанавливаем libguestfs-tools в wsl.
2. sudo mkdir -p /mnt/wsl
3. sudo guestmount -o allow_other —add mnt/c/Users/username/путь_к_/ext4.vhdx -i /mnt/wsl
4. Чистим лишнее в /mnt/wsl
5. После этого из винды уже запустить
wsl —shutdown
optimize-vhd -Path путь_к_\ext4.vhdx -Mode full

  • Facebook
  • Вконтакте
  • Twitter

Есть еще один способ уменьшить размер этого файла.
1. зайти в Docker Desktop
2. нажать на Troubleshoot (сверху справа жучок такой)
3. Там выбрать Clean / Purge data
4. и среди вариантов выбрать WSL 2

У меня после этого действия ext4.vhdx уменьшился с 34 гигов до 1,1 гб.

До этого я, правда, снесла все контейнеры и образы, какие там были, т.к. надеялась, что это даст результат, но память как была занята этим файлом, так и оставалась.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *