我知道/ dev / sda是原始设备,/ dev / sda1是分区或虚拟设备。
但是我对为什么sda#仅在某些时间出现或仅在某些系统上出现有些困惑。是什么原因导致这种情况发生?也许sda#驱动器不出现的时间是未分区的时间?也许在硬件上不一样吗?
为什么我可以同时安装两者?(有时)分区不应该是可安装的分区吗?
您可以提供的任何资源或颜色将不胜感激。先感谢您。
我知道/ dev / sda是原始设备,/ dev / sda1是分区或虚拟设备。
但是我对为什么sda#仅在某些时间出现或仅在某些系统上出现有些困惑。是什么原因导致这种情况发生?也许sda#驱动器不出现的时间是未分区的时间?也许在硬件上不一样吗?
为什么我可以同时安装两者?(有时)分区不应该是可安装的分区吗?
您可以提供的任何资源或颜色将不胜感激。先感谢您。
Answers:
在现代系统上,仅当分区实际存在时,分区设备才会出现。
在具有MBR分区表的磁盘上,分区号1到4对应于分区表中的四个插槽,称为“主”分区。它们不必顺序填充,因此例如可以有一个sda2但没有sda1。分区号5及以上对应于扩展分区中的“逻辑驱动器”,并且始终按顺序编号,因此如果没有sda5,就无法拥有sda6。
在具有GPT分区表的磁盘上,可以有更多(通常最多128个)分区,并且所有分区都是“主要”分区。因此,例如,您可能有一个磁盘,其唯一分区是sda9。
如果磁盘没有分区表,那么它当然也将没有分区设备。
较旧的系统(使用静态/ dev而不是由udev管理的系统)通常会拥有所有可能分区号的设备节点,而不管分区是否实际存在。(当然,尝试为不存在的分区打开设备文件将失败。)
可以放弃分区并将文件系统直接放在磁盘上。当您安装块设备时,文件系统驱动程序通常会在距设备开头预定偏移量的位置寻找超级块,并且由于分区的开头不是磁盘本身的开头,因此分区中文件系统的超级块它在磁盘上的位置与在“全盘”设备上创建的文件系统的超级块不同。
因此,如果磁盘曾经只有一个文件系统,然后对其进行了分区,并且在分区中创建了文件系统,则旧的超级块可能仍然存在,例如,在第一个分区开始之前的小间隙中。因此,磁盘似乎仍然在原始磁盘设备和分区设备上都具有文件系统,因为无论您尝试挂载哪个文件系统,当文件系统驱动程序去寻找超级块时,它都会找到一个。
但是,挂载和使用两个文件系统实际上并不安全,因为它们在磁盘上重叠。一个人可能拥有重要的簿记数据,而另一个人则认为是自由空间。这就是为什么在要将原始磁盘更改为分区磁盘(反之亦然)或更改分区上使用的文件系统的类型时,最好将块设备的开头清零,删除所有不需要的超级块。 。
据我所知,当内核在类似scsi(包括sata)的总线上检测到新的块设备时,除了/dev
为整个磁盘本身添加节点外,例如/dev/sda
,它将尝试查看是否有分区表。 。如果有可读的分区,它将创建分区节点,编号取决于它们是物理分区还是逻辑分区(我相信逻辑分区从#5开始)。
如果您看到一个磁盘节点但没有分区节点,则意味着未检测到任何分区。我不知道可以安装物理设备的任何实例,因为这暗示着有一个文件系统直接写入物理设备而没有任何分区表。可能只有一个分区的情况下,mount
会将mount /dev/sda
命令解释为意义/dev/sda1
,但是我从未测试过。
/dev/sdc
但不确定是否要这样做。
嗯,分区表和设备名称。准备好与他们混淆。
是否有带Compaq RAID控制器的HP服务器?没有/ dev / sda,请问/ dev / ccsis。
是否有带有旧IDE接口的旧台式机?没有/ dev / sda,请问/ dev / hda。
有一台现代化的服务器说您是/ dev / sda,但是安装后几乎看不到它?向LVM打个招呼,您的OS安装已将/ dev / sda设置为LVM物理卷,在其中创建了一个卷组,并在其中创建了逻辑卷。
所以...如果看不到/ dev / sda1之类的东西,则可能是使用了LVM或类似的东西,它们已经创建了自己的“分区”。
这是否回答你的问题?