расположение файловой системы linux -partiton - fdisk - PullRequest
1 голос
/ 05 апреля 2019

Я пытаюсь понять структуру файловой системы Linux.Почему команда работает внутри виртуальной коробки, а не в оболочке Linux на Windows?

Я пытался использовать команду sudo fdisk -l dev/sda на моем виртуальном компьютере (Ubuntu) и Ubuntu на Windows (из магазина Microsoft).Он не работал ни на одном из них, но когда я изменил команду на sudo fdisk -l, она работала внутри виртуальной коробки, а не в оболочке linux bash на windows.

Внутри оболочки Linux на Windows:

:~$ sudo fdisk -l /dev/sda
.

fdisk: cannot open /dev/sda: No such file or directory

:~$ sudo fdisk -l

fdisk: cannot open /proc/partitions: No such file or directory

:~$ man fdisk

:~$ whereis fdisk

fdisk: /sbin/fdisk /usr/share/man/man8/fdisk.8.gz

1 Ответ

0 голосов
/ 05 апреля 2019

Фундамент подсистемы Windows для Linux (WSL) - Ubuntu - это эмулятор POSIX, подобный среде Cygwin , которая помогает переносить некоторые команды / приложения на основе Linux, работающие на платформе Windows, в процесс Windows.

Он содержит уровень абстракции виртуальной файловой системы (vfs), которая имеет образы приложений, доступные только для чтения, и доступные для записи tmpfs на основе ОЗУ, а также не имеет контроля доступа для чтения необработанных устройств на хост-системе и не эмулирует необработанные устройства. для подсистемы.

от человека (fdisk):

Описание

Эта команда используется для создания и изменения таблицы разделов, а также для установки основной загрузочной записи (только для IA), которая ставится в первый сектор фиксированного диска. Эта таблица используется начальный этап начальной загрузки (или прошивка) для идентификации частей диска зарезервированы для различных операционных систем, а также для определения раздел, содержащий загрузчик второй стадии (активный Solaris раздел). Аргумент rdevice должен использоваться для указания необработанного устройство, связанное с фиксированным диском, например, /dev/rdsk/c0t0d0p0.

Таким образом, WSL-Ubuntu не может успешно выполнить команду fdisk, поскольку у него нет собственного ядра для управления ресурсами хоста.

С другой стороны, Oracle VirtualBox - это виртуализированная система, которая имитирует полнофункциональную ОС, работающую на голом железе. Он моделирует собственное системное пространство и пользовательское пространство с помощью гипервизора виртуализации и управляет виртуальными ресурсами через ядро ​​гостевой ОС. Вот почему выполнение команды fdisk было успешным в VirtualBox

Ссылка: https://www.microsoft.com/en-us/research/wp-content/uploads/2013/01/posix-emulation-submitted.pdf

Кредиты: https://www.quora.com/How-is-Windows-Subsystem-for-Linux-different-from-running-Linux-on-Windows-in-a-VM

...