linux文件系统布局-partiton-fdisk

时间:2019-04-05 04:01:20

标签: shell ubuntu command-line ubuntu-18.04 partition

我想了解Linux文件系统的布局。为什么该命令在虚拟框内起作用,但在Windows的Linux Shell上却不起作用?

我试图在我的虚拟盒子(Ubuntu)和Windows(从Microsoft Store)的Ubuntu上都使用命令sudo fdisk -l dev/sda。它对它们中的任何一个都不起作用,但是当我将命令更改为sudo fdisk -l时,它可以在虚拟框中运行,但不能在Windows上的linux bash shell上运行。

在Windows上的Linux shell内部:

:~$ 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 :(得分:0)

Windows Linux子系统(WSL)的基础-Ubuntu是POSIX仿真器,类似于Cygwin这样的环境,有助于在Windows进程中移植一些在Windows平台上运行的基于Linux的命令/应用程序。

它包含虚拟文件系统(vfs)的抽象层,该文件系统具有基于只读应用程序映像和基于RAM的可写tmpfs,并且既没有访问控制权也无法读取主机系统上的原始设备,也不模拟原始设备子系统。

来自man(fdisk):

  

说明

     

此命令用于创建和修改分区表,并安装主引导(仅限IA)记录   放在固定磁盘的第一个扇区中。该表由   第一阶段引导程序(或固件)以识别磁盘的各个部分   保留给不同的操作系统,并标识   包含第二阶段引导程序的分区(活动的Solaris   划分)。 必须使用rdevice参数指定原始   与固定磁盘关联的设备,例如,   / dev / rdsk / c0t0d0p0。

因此WSL-Ubuntu无法成功执行fdisk命令,因为它没有自己的内核来管理主机资源。

另一方面,Oracle的 VirtualBox 是一个虚拟系统,它模仿了在裸机上运行的功能齐全的OS。它借助虚拟化管理程序模拟自己的系统空间和用户空间,并通过Guest OS内核管理虚拟资源。这就是为什么在VirtualBox上成功执行fdisk命令的原因

参考: 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