为什么分区通常是在同一台计算机上安装多个(2)操作系统的一个步骤?
操作系统是否必须有自己的分区才能运行,或者它是否可以在与另一个操作系统相同的分区中运行?(即 - 两个相同版本的操作系统是否可以在同一个分区中运行,但如果您有一个 Linux 和一个 Windows,则需要进行分区?)
运行多个操作系统是否需要对磁盘进行分区?
答案1
一般来说,不同的操作系统支持不同类型的文件系统,不幸的是,两个不同的操作系统很少能够充分支持相同的文件系统以满足操作系统的需求。
例如,Windows 中的默认文件系统是 NTFS,它是封闭的 - 这意味着,Linux 重新实现 NTFS 基本上需要通过猜测和逆向工程来完成,因为没有官方规范可供阅读。Linux 有两个 NTFS 驱动程序:一个是内核的一部分,但质量仍然很差;另一个 - ntfs-3g - 是使用 FUSE 编写的,这使得它很难集成到启动过程中,尽管这肯定可以做到(如果使用 initramfs 启动)。
反过来说,在 Linux 支持的十几个文件系统中,只有 ext2/3/4 有适用于 Windows 的第三方驱动程序(ext2IFS 和 ext2fsd);同样,其中一个仅限于 ext2,另一个声称支持 ext3/ext4,但没有日志,而且它们都不能真正从 ext2/3/4 分区启动 Windows。
无论您使用哪种操作系统组合,情况基本都一样。由于许可问题,Linux 无法从 FreeBSD 读取 UFS,需要第三方驱动程序来支持 ZFS(同样,从 ZFS 启动 Linux 是可能的,但它不一定像使用 Linux 原生文件系统那么容易)。FreeBSD 也仅支持 ext2 和 ext3(勉强支持)。
一般来说,唯一广泛支持的文件系统是微软的 FAT/FAT32,它是相当与上述所有方法相比,它速度慢且不可靠,更不用说它的局限性了(例如文件大小限制为 2 或 4 GB)。
FAT 本身也不支持类 Unix 操作系统所期望的任何内容,例如权限位、访问列表或符号链接等特殊文件。(是的,NTFS 都支持所有这些内容。做支持。)
曾经有一段时间,人们可以在 FAT 分区上安装 Linux,同时使用 MS-DOS 或早期的 Windows 系统,使用特殊的umsdos
文件系统驱动程序,该驱动程序会将这些额外的 Unix 元数据存储在 Linux 和 MS-DOS 都看不到的特殊文件中。然而,它早已被删除。(Windows 本身也不再支持从 FAT 分区启动。)
另一方面,安装两个版本的相同的操作系统经常被放到同一个分区是有可能,尽管几乎总是会导致文件冲突。例如,即使\WINDOWS
目录名称可以在第二次安装时更改(某些版本甚至将其\WINNT
作为默认值),两个系统仍然希望能够控制默认值\Users
和\Program Files
目录。
现代 Linux可以相当轻松地实现这一点 – 大多数安装使用 initramfs,它具有足够的用户空间工具来将主“根”文件系统挂载到常规路径(如/mnt
或 )上,然后使用或/new_root
进入它。修改 initramfs 以使其进入或很简单– 因此根分区将具有和,例如,但两个系统都会确信它们只看到自己的,如果需要,您甚至可以将实际的文件系统根绑定在 之上。chroot
pivot_root
/mnt/system-one
/mnt/system-two
/system-one/usr
/system-two/usr
/usr
/all-systems
(请注意,我从来没有说过这实际上是一个好主意。)
答案2
简单的回答是肯定的。
不同的操作系统(例如 Windows 和 Linux)使用两种不同的文件格式(NTFS 与 Ext3/Ext4),并且这些不同的文件格式将无法存在于一个分区中。
但是你可能会问:但是如果我有 2 个 Linux 操作系统,它们都运行 Ext4,那么它们可以位于 1 个分区中,对吗?
从技术上讲,是的,但是如果所有操作系统文件都简单地混杂在一起,那么每个操作系统文件的位置就会令人困惑。Linux 内核本身将保留下来,因为 Linux 内核将具有不同的文件名。但大多数 Linux 文件夹结构将类似,您将拥有 /usr /bin,并且两个 Linux 操作系统将简单地覆盖彼此的文件,最终可能会损坏您的系统。
因此,是的,分区是必要的,因为文件/文件夹名称冲突(安装 2 个 Linux 操作系统时)或文件系统格式不同,所以必须将操作系统的文件放在不同的区域中。也许其他人可以添加有关其他原因的更多信息,但这些是我现在知道的 2 个。
希望这可以帮助。