我是 Linux 新手,这可能是一个愚蠢的问题,但是有没有办法将分区设置为只读,然后压缩该分区上的所有文件并将它们放入 tar.gz 中在该分区上?由于我是在嵌入式系统上执行此操作,因此我无法将 tar 写入 USB 驱动器。
这可能是一个 xy 问题——我试图完全复制主分区,而在复制过程中不更改文件。我能够将分区重新挂载为只读,但是,当然,我无法将 tar 写入该分区。
有没有更好的方法?
答案1
不,这是不可能的。以只读方式安装的分区是只读的,这意味着您无法将 tar.gz 文件写入其中。
也就是说,您可以在此设备上访问网络吗?我认为你应该能够将它们同步到一台单独的计算机并在那里生成 tar。
如果您确实需要在嵌入式计算机上生成 tar 存档并且它已连接到网络,那么您可以尝试使用 netcat:https://nakkaya.com/2009/04/15/using-netcat-for-file-transfers/
在 tar 中,您可以将“O”或“--to-stdout”标志添加到命令中。将其输出通过管道传输到 netcat。
在接收端,运行:
nc -l -p 1234 > out.file
在嵌入式端,运行:
tar cvO /partition | nc -w 3 [receiving IP] 1234
请注意,netcat 未加密,因此仅建议对于非敏感信息或本地网络。
另一种可能性是使用 NFS 或 sshfs 等安装远程驱动器。
在嵌入式计算机上:
sshfs [email protected]:/remote/computer/directory /mnt/remote
tar cvf /mnt/remote/files.tar /folder/to/tar
如果您尝试压缩根分区,请确保远程文件夹为空,这样存档中就不会出现一堆垃圾。