NTFS 修复 - Linux 中的 chkdsk

bas*_*ner 3 linux windows live-usb ntfs

如何从我的Linux USB Rescue Stick运行 Window 的chkdsk.exe来修复 NTFS 驱动器?

这是针对媒体播放器的。我已经很久没有使用 Windows 了,但是我不得不在我的上网本上安装一个可用的安装来不时地修复这个磁盘!我想摆脱这个无用的分区。

来自 ntfs-3g 的 Linux 工具 ntfsfix 不能替代 Windows chkdsk!

Zip*_*Zip 7

除非您考虑chkdsk.exewine或虚拟化下运行,否则Linux 无法运行它。有一个 linux 兼容工具可用于修复 ntfs 分区,该工具ntfsfix可在大多数发行版存储库中调用并提供。

它不是 Linux 的 chkdsk,可能无法产生与 Microsoft Windows 兼容的结果,但是它能够修复一些常见的 ntfs 可能问题。它可能会在尝试修复时丢失您的数据,即使 chkdsk 也可能会这样做。用法示例:

ntfsfix /dev/sdxY
Run Code Online (Sandbox Code Playgroud)

您应该用xY要修复的分区的适当字母替换的位置。

  • 真理!这就是我明确要求 *chkdsk.exe* 的原因。 (3认同)

bas*_*ner 2

我在Hiren 的 BootCD上使用 MiniXP 。包含的版本 5.1.2600.0 有点过时,但可以完成工作。

这样,我只需在救援棒上添加另一个启动项即可获得 chkdsk.exe 的全部功能!

这是我使用空USB 棒的手动、分步、仅限 Linux 的方法:

在终端中启动bash会话

mkdir /tmp/d1 && cd /tmp/d1

wget http://www.hirensbootcd.org/files/Hirens.BootCD.15.2.zip

unzip Hirens.BootCD.15.2.zip

mkdir iso

sudo mount -o loop,ro,uid=$UID Hiren\'s.BootCD.15.2.iso iso
Run Code Online (Sandbox Code Playgroud)

插入您要使用的 U 盘:小心!其上的所有内容都将被删除!

确定摇杆的装置:

dmesg
Run Code Online (Sandbox Code Playgroud)

或者

journalctl
Run Code Online (Sandbox Code Playgroud)

或者

less /var/log/syslog
Run Code Online (Sandbox Code Playgroud)

注意设备和分区:

USB_STICK=  # e.g. /dev/sdb

USB_STICK_PARTITION=${USB_STICK}1
Run Code Online (Sandbox Code Playgroud)

重新检查一下:

/sbin/fdisk -l $USB_STICK
Run Code Online (Sandbox Code Playgroud)

检查是否已安装:

mount | grep $USB_STICK
Run Code Online (Sandbox Code Playgroud)

如果是:卸载设备或分区

sudo umount ${USB_STICK}{,{1..4}}
Run Code Online (Sandbox Code Playgroud)

清除它:

sudo dd if=/dev/zero of=$USB_STICK count=10000
Run Code Online (Sandbox Code Playgroud)

下载syslinux:

wget https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.gz
Run Code Online (Sandbox Code Playgroud)

提取它:

tar xzf syslinux-6.03.tar.gz
Run Code Online (Sandbox Code Playgroud)

写入主引导记录:

sudo dd if=syslinux-6.03/bios/mbr/mbr.bin of=$USB_STICK
Run Code Online (Sandbox Code Playgroud)

创建一个FAT32分区,例如

echo ,,c,\* | sudo sfdisk $USB_STICK 
Run Code Online (Sandbox Code Playgroud)

格式化它:

sudo mkfs.vfat -n MINIXP -v $USB_STICK_PARTITION
Run Code Online (Sandbox Code Playgroud)

使其可启动:

sudo syslinux-6.03/bios/linux/syslinux --install $USB_STICK_PARTITION
Run Code Online (Sandbox Code Playgroud)

复制内容:

mkdir usb

sudo mount -o uid=$UID $USB_STICK_PARTITION usb

cp -rv iso/* usb
Run Code Online (Sandbox Code Playgroud)

创建配置文件:

echo "default minixp\nlabel minixp\nboot /HBCD/grldr" >usb/syslinux.cfg
Run Code Online (Sandbox Code Playgroud)

MiniXP设置为默认值:

sed -i '/^default/s|/default|2|' usb/HBCD/menu.lst
Run Code Online (Sandbox Code Playgroud)

整理:

sudo umount $USB_STICK_PARTITION

sudo umount iso

cd ..
rm -r d1
Run Code Online (Sandbox Code Playgroud)

完毕!

我删除了 Parted Magic 和大病毒的东西,并将其在我的救援棒上减少到200MB 。

调整此程序以适合您自己的救援棒!

  • @AndreaLazzarotto 实际上,SE 上没有这样的规则。事实上,[规则](https://meta.stackexchange.com/q/8492/203101) 有点相反:执行法律不是我们的工作,我们也没有资格这样做。我们也无法知道每个用户管辖范围内的行为的合法性(另请参阅[1](https://meta.stackexchange.com/q/127892/)、[2](https://meta.stackexchange.com /q/80495/))。无论如何,这篇文章并不是鼓吹盗版!您可能会争辩说提到的工具违反了许可证,但在这个答案中使用它是合法的。 (3认同)
  • @AndreaLazzarotto 你提到的政策是特定于 [su] 的,是他们在元数据上决定的,而不是 SE 范围内的决定。我根本没有资格判断Hiran的启动CD是否非法,因此无法对此发表意见。答案确实会受益于“chckdisk”的提及,是的,但这是另一个问题。据推测,您可以从创建的 USB 运行它。至于态度,这与答案的技术方面无关。对于可能的非法活动的总体立场确实已经讨论过,共识是:我们不能执行法律。 (2认同)