几天前我在 uni,当时我试图将一个 500Mb 的文件(3gp 视频录制)剪切并粘贴到 uni 网络的其中一台 Linux(Debian KDE 3.5)计算机上的 H 驱动器中。
我没有看到任何指示剪切和粘贴作业失败的错误消息,但是当我查看生成的粘贴文件时,它现在显示为 60Mb 文件(这是 440Mb 的差异!)。我的文件不知何故缩小了!文件在粘贴过程中是否被破坏,这是一个未完全复制文件的片段?
我怀疑发生的事情是由于管理员对用户施加的 H 驱动器大小分配限制而导致文件传输中断。
但是你会认为 Linux 会预期文件比移动到预定目的地的文件大,并在传输开始之前中止传输,而不是等到它达到某个禁止的限制然后在不通知我的情况下离散取消。
同样在文件传输中断的情况下,人们通常希望原始文件保持完整(即未删除)原始 USB 驱动器?
该文件出现在目标中,但现在要小得多并且不起作用。外部驱动器源位置中的原始文件已消失,表明作业已成功完成。
这种调整大小相当奇怪,现在我似乎无法访问原始文件。剪切和粘贴后,原件可能已从其源位置中删除。计算机错误处理了这个任务,显然导致我丢失了我的文件,我想请你帮我找回我的文件。
我曾尝试使用 PhotoRec 和 Sleuthkit 取证工具恢复手机 SD 卡上的文件。没运气。磁盘的删除部分可能已被新数据覆盖。所以源端的进度为零。有什么方法可以在目标端(即我的 uni 网络)恢复?
peter@peter-deb:/media/E0FD-1813$ cd DCIM/
peter@peter-deb:/media/E0FD-1813/DCIM$ cd ..
peter@peter-deb:/media/E0FD-1813$ cd LOST.DIR/
peter@peter-deb:/media/E0FD-1813/LOST.DIR$ ls
peter@peter-deb:/media/E0FD-1813/LOST.DIR$ ls -a
. ..
peter@peter-deb:/media/E0FD-1813/LOST.DIR$
Run Code Online (Sandbox Code Playgroud) 假设一个 apache 日志文件被删除,但它被 apache 保持打开状态;那么这就是我正在做的:
pid=$(lsof | grep text.txt | awk '/deleted/ {print $2}')
fd=$(lsof | grep text.txt | awk '/deleted/ {print $4}' | grep -oE "[[:digit:]]{1,}")
cp /proc/$pid/fd/$fd directorytobecopied/testfile.txt
Run Code Online (Sandbox Code Playgroud)
这就是我为恢复文件并将其放回原处所做的工作。有没有更简单的方法来做到这一点,因为上面的代码看起来不太好。此外,我如何知道文件被删除的位置(directorytobecopied),以便我不必手动询问某人文件的原始位置并将其放回那里。
我需要将一个 NTFS 分区从一个损坏的、接近死的硬盘(SCSI,如果这很重要)克隆到一个新的(SATA)。
我已经在 U 盘上安装了 Hiren 的 Boot CD 实用程序的最新版本,并尝试使用 GParted,它告诉我它无法复制/粘贴分区,因为它已损坏并被 Windows“标记”以运行 CHKDSK。我遵循了警告建议并尝试使用CHKDSK /f(花了 9 个小时并在“第 3 阶段”之后退出并出现错误)和一个我现在想不起来的 Linux 程序来修复它,但没有成功。
由于同样的原因,我尝试使用 Clonezilla 进行克隆,但也失败了。在 HBCD 中有 dd_rescue,但它再次失败,因为它找不到“ntfs.something”。
最后,我想要的只是按原样克隆该分区,包括他的错误和所有内容。我可以在新驱动器上修复它。
所以我该怎么做?
我看过几篇关于恢复已删除文件的帖子,但这种情况有所不同。我的妻子有一个名为 Journal.odt 的文件,她在其中保存了许多重要的个人信息,例如关于我们孩子的特殊记忆。前几天,当她试图在 OpenOffice 中打开它时,它抱怨格式。我让她取消并退出。当我cat文件时,它完全是空的。ls说文件是 0 字节。
如果她不小心选择了文件中的所有文本,按退格键并保存它,文件中仍然会存在 OpenOffice 元信息。
我立即关闭了她的笔记本电脑以防止对磁盘进行更多更改,直到我想到可以做的事情。
我过去做过一些复杂的事情,例如dd用于从磁盘恢复原始文本,但我不知道在这里做什么。由于 odt 文件不是纯文本,我不能通过 grep 将整个磁盘通过管道传输。
任何建议将不胜感激。
此外,如果有人对可能出了什么问题有任何见解,我很乐意听到。
谢谢
我的硬盘驱动器似乎在日志中出现了某种硬件问题。这可以防止驱动器被加载。运行mount -r -t ext4 /dev/sda5 /mnt/root结果在以下内核喷涌:
[ 1420.671055] ata1.00: exception Emask 0x0 SAct 0x1000000 SErr 0x0 action 0x0
[ 1420.673862] ata1.00: irq_stat 0x40000008
[ 1420.676600] ata1.00: failed command: READ FPDMA QUEUED
[ 1420.679326] ata1.00: cmd 60/40:c0:a8:9d:0a/00:00:08:00:00/40 tag 24 ncq 32768 in
[ 1420.679326] res 41/40:40:e1:9d:0a/00:00:08:00:00/00 Emask 0x409 (media error) <F>
[ 1420.685014] ata1.00: status: { DRDY ERR }
[ 1420.687858] ata1.00: error: { UNC }
[ 1420.761064] ata1.00: configured for UDMA/133
[ 1420.763863] sd 0:0:0:0: >[sda] Unhandled sense …Run Code Online (Sandbox Code Playgroud) 启动VirtualBox后,计算机变得迟钝,然后由于OOM而完全挂起。通常,OOM 应该开始杀死进程以释放一些空间,但这并没有发生(这是我第二次遇到这种情况)。
我在文本编辑器中有一些未保存的重要工作,所以我希望在使用SysRq+杀死当前控制台中的所有进程后,在系统 RAM 中找到它K。有问题的机器是具有 8 GiB RAM 的笔记本电脑,运行 Linux x86_64 3.7.5,以 SSD 作为目标磁盘。
我的第一次尝试是dd if=/dev/mem of=memory,但在读取 1MiB 数据后失败了。接下来,我尝试了dd if=/dev/fmem of=memory bs=1M,但在读取 3010461696 字节(正好 2871 MiB)后停止了。在查看/proc/mtrr(如下所示)后,我决定尝试添加skip=4096. 这最终变慢了,读取速度仅为 3 MiB/秒,所以我中断了它(产生了 5.8 GiB 的文件)。(至少文件的最后 100 MiB 包含FFs)
reg01: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back
reg02: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
reg03: base=0x100000000 ( 4096MB), size= 4096MB, count=1: write-back
reg04: base=0x200000000 ( 8192MB), size= 1024MB, count=1: …Run Code Online (Sandbox Code Playgroud) 我运行一个小的uClibc和busybox一个x86设备上基于嵌入式系统。我正在使用 initramfs,但我还在ext3IDE 模式下的紧凑型闪存设备上安装了一个自定义目录,我用它来存储由自定义编写的 C++ 应用程序创建的持久测量日志记录数据。我选择了ext3文件系统,因为在我读过的几本书(Karim Yaghmour 的《构建嵌入式 Linux 系统》和Christopher Hallinan 的《嵌入式 Linux 入门》)中,在 IDE 模式下使用 CF 驱动器时,建议使用它来防止断电。这一点尤为重要,数据至关重要。
但是,由于我之前的问题混淆了如果在文件写入过程中发生断电,如何恢复损坏的 ext3 文件中的一些评论,看来实际上该文件系统并没有提供针对因电源造成的数据损坏的安全保证损失。所以我想知道是否
ext3实际上是这个设置的最佳选择?initramfs.cpio文件是否也有损坏的风险?我已经看到并阅读了这个相关问题的答案:日志文件系统是否保证在断电后不会损坏?,但它并没有完全涵盖一些让我感到困惑的事情。
我意识到我问了很多问题,但似乎尽管阅读了很多材料,但我从根本上无法理解断电时我的数据所面临的风险。
在尝试从发生故障的硬盘驱动器恢复数据的过程中,我正在运行该命令ddrescue。
该命令已经运行了 9 天,我从磁盘活动的声音中认为它可能正在执行某些操作。命令行输出一直看起来或多或少是静态的:
$ sudo ddrescue -r3 /dev/sdb /home/dave/RECOVERY/usb500.image /home/dave/recovery_usb500.logfile
Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued: 0 B, errsize: 0 B, errors: 0
Current status
rescued: 0 B, errsize: 500 GB, current rate: 0 B/s
ipos: 2539 MB, errors: 1, average rate: 0 B/s
opos: 2539 MB, time from last successful read: 9.7 d
Splitting failed blocks...
Run Code Online (Sandbox Code Playgroud)
一直在变化的一个部分是它说ipos和的地方opos。花了 9 天时间才恢复到大约500000 MB,这是发生故障的磁盘驱动器的大小。然而,当它到达那里时,它又下降到0并开始再次上升。在我写这篇文章的时候,它大约在2580 MB …
我在另一台计算机上安装了 Linux,我想将我的/home目录移动到那台计算机上。我想用任何文件权限、符号链接等备份该目录。
我该怎么做?tar gzip 有什么参数吗?
我在以下过程中不小心丢失了一个pdf文件
我在 Ubuntu 18.04 中的 Wine 中运行 pdf 软件应用程序 PDFXCView,以在 ext4 文件系统中打开 pdf 文件。
然后我mv将pdf文件放在其他地方。
这里有一些尝试。
如果有帮助,我记得丢失的 pdf 文件的路径名。
我无法通过 备份文件系统的分区dd,因为我没有额外的硬盘驱动器具有足够大的分区容量。
我debugfs根据
https://unix.stackexchange.com/a/80285尝试过,
$ sudo debugfs -w /dev/sda4
debugfs: lsdel
Inode Owner Mode Size Blocks Time deleted
22549259 1000 100600 141 1/ 1 Sat Apr 2 09:14:06 2016
1 deleted inodes found.
debugfs: logdump -i 22549259
22549259: File not found by ext2_lookup
Run Code Online (Sandbox Code Playgroud)
该文件只是丢失了,而不是在 2016 年被删除,所以我不确定它是否找到了正确的 inode。 …