在考虑 linux 和 windows 互相挂载的事。虽然是科班毕业,但是对文件系统了解大概也就是索引和实际储存这样,其实不是很了解。
想到一个问题就是,比如 linux mnt 了一个 windows 的硬盘,实际效果是文件在两个操作系统中都能编辑和操作,但是这个文件实际上是储存在 linux 的文件系统下的还是 win 的文件系统下的?
1
tuwulin365 2023-01-29 17:25:30 +08:00
|
2
leoleoasd 2023-01-29 17:32:11 +08:00
文件系统本身取决于创建分区(格式化)的时候选的文件系统
|
3
leoleoasd 2023-01-29 17:32:32 +08:00
如果在 linux 下创建的,大概率是 ext4 之类的;如果是 windows 应该就是 ntfs
|
4
leoleoasd 2023-01-29 17:32:59 +08:00
https://github.com/maharmstone/btrfs
以及有个有趣的项目可以看看,只是不一定稳定 |
5
ashuai 2023-01-29 17:35:30 +08:00
用 smb 共享稳一点,文件是存在硬盘上,权限上来说谁是 host 谁说了算
|
6
libook 2023-01-29 17:44:59 +08:00
你是双操作系统吗?同时只有一个操作系统在运行,公用同一个硬盘?
文件系统只是一个管理数据的标准,比如 NTFS 就是文件系统,你使用 NTFS 标准格式化一块硬盘,那么这块硬盘的文件系统就是 NTFS 。操作系统会实现对文件系统的操作功能,比如 Linux 下的 NTFS-3G 就是一款按照 NTFS 标准来操作数据的软件。 所以不存在“这个文件实际上是储存在 linux 的文件系统下的还是 win 的文件系统下的”这种说法,你当前是什么操作系统就是由什么操作系统操作的,只不过使用了实现了特定文件系统操作功能的软件。 比如你在 Linux 操作系统上使用 NTFS-3G 提供的操作功能来操作一块格式化为 NTFS 文件系统的硬盘。那么可以说数据是存储在一块 NTFS 文件系统的硬盘上的,使用 Linux 操作系统上的 NTFS-3G 软件包来操作数据。 |
7
lxdlam 2023-01-29 17:46:20 +08:00 4
文件系统是对底层物理数据存储的抽象,本质上是一种协议,这些 section 上的数据可以用这种协议解释。在不同系统上使用同种协议可以挂载同一个区块,最终写完了都在同一个物理区块上,那么换到其他系统(甚至直接 `dd` 到一个 image )上打开,只要协议一样,读取到的内容是一致的。
而 OS 本身跟文件系统是半解耦的:本质来说,OS 跟文件系统应该是完全解耦的,你也可以在 Linux 上使用 NTFS 。但是对于现在用的比较多的三大 OS ,都对自己常用的文件系统有特定支持(例如 Windows 的 Bitlocker 对 NTFS 支持最好,一些比较有意思的扩展特性例如 Alternative Data Streams 可能其他平台的 ntfs 实现不包含),所以本质上来说跟 OS 关系大也不大。 所以,文章的问题可以回答为: - 保存在物理区块上,跟操作系统无关。 - 在不同操作系统下,只要有协议的实现或者兼容层,读写应该不会有太大问题。 - 现代 OS 对自己常用的文件系统可能大多有扩展,对于这些扩展,在其他平台的兼容实现上可能有问题。 |
8
feng0vx 2023-01-30 12:51:44 +08:00 via iPhone
两个系统都在做读写,
|