我的问题是,我有一个硬盘,有一个linux服务器(It fails during booting up process)和一些有价值的文件。( tried almost all solutions on the internet but no luck)
现在我找到了一家公司,它可以发送硬盘进行修复,但是由于我的硬盘上有一些有价值的信息,我需要能够复制硬盘并将副本发送给它们(以防丢失、失败等)。
发现了解决方案,但在linux系统正常工作时(如dd ,Partimage ,Partclone )可以正常工作。
但是,我想知道如何在不启动时获得linux硬盘的第二份副本?有可能吗?(我相信,即使
我一直在尝试使用using ()来获取linux系统上的硬盘大小。
我有一个函数,它应该返回正确的大小:
unsigned long long getsize(FILE *fp){
unsigned long long prev=ftell(fp);
fseek(fp,0,SEEK_END);
unsigned long long size=ftell(fp);
fseek(fp,prev,SEEK_SET);
return size;
}
但是当我在硬盘上使用它时,它会返回18446744073709551615或2^64-1.
它似乎并不总是把它还回
我需要得到Linux中所有文件的列表,以及它们的大小。
文件系统是ext4,在内存很少的机器上运行
我使用的函数是这些--有没有更好的技术?
a) opendir()
b) readdir()
c) stat()
我相信我在使用stat()调用时受到了很大的打击,我没有太多的RAM,而且硬盘是通过USB连接的
有没有办法说
“给我目录中的所有文件,以及文件大小?”-我猜我受到了影响,因为stat()需要查询inode的大小,从而导致大量的查找?