我为我的 Windows 安装和 Ubuntu Live CD 创建了一个可启动的拇指驱动器,它还包含一些 Windows exe(应用程序)。
我认为为了防止病毒,我的想法是最好把 U 盘里的所有空间都填满。我在 Ubuntu 上使用下面的命令
yes > AAA.dummy
创建一个虚拟文件,当驱动器已满时它会停止,正如我在 Nautilus(Ubuntu 文件管理器)中看到的那样,它显示驱动器已完全填满,并且 Windows 10 资源管理器显示驱动器上的可用字节为 0。
很好,看起来像是我想要的,但我想看看是否仍然可以将文件写入驱动器,我只是做了
touch temp.text
文件创建好了,我感到很困惑,但我觉得可能因为创建的文件的大小只有 0 字节,所以这并不重要,但是
echo "it doesn't work" > temp.txt
也可以工作,文件已写入并显示在驱动器中。怎么会?
如果空间为 0 字节,怎么还会有东西写入其中?我甚至无法从病毒中拯救出来!。我使用终端仿真器在我的 Android 设备上尝试了同样的事情,我填满了可移动 SD 卡上的空间,但像触碰仍然会创建空文件,尽管这次 echo > *.txt 不起作用
编辑:
抱歉,我没有添加这一点,文件系统是 NFTS
我主要担心的是病毒还能写入驱动器吗?
答案1
从这个答案“当文件中有数据时,磁盘上文件的大小怎么会是 0 字节?”:
为了节省磁盘空间,NTFS 让小文件“驻留”,将其内容直接存储在文件记录中,因此无需为其分配任何簇。因此,磁盘上的大小为零,因为文件记录之外没有任何东西。一旦文件变得足够大,NTFS 就会使其“非常驻”,为其分配一个或多个簇(创建非零“磁盘上的大小”),并在文件记录中创建“映射对”来代替数据指向簇。
此外:
随着文件添加到 NTFS 卷,MFT [主文件表] 中会添加更多条目,因此 MFT 的大小会增加。从 NTFS 卷中删除文件时,它们的 MFT 条目会被标记为空闲,可以重新使用,但 MFT 不会缩小。因此,这些条目占用的空间不会从磁盘中回收。
因此,MFT 中可能有一个空闲条目,文件内容也存放在那里。