我正在尝试做什么
我正在尝试使用 Ubuntu Desktop 14.04 LTS 上的 GParted 将分区从一个设备克隆到另一个较新的设备(如果包括我正在使用的设备,则总共有三个设备在运行)。我可以正常使用终端,但命令不正确。较新的设备比我要克隆的这个分区有更多空间,并且我创建了一个 msdos 分区表,因此我需要做的就是创建一个新的 ntfs 分区。
问题
GParted(repo 中的版本:0.18.0)无法将 ssd 识别为块设备。
我尝试了sudo mkntfs -Q -v -L -F "win7" /dev/sdb1
uis 所说的加上 -F 来强制执行,但它回复说,Cannot understand the number of sectors '/dev/sdb1'.
如果没有专家的帮助,我不太习惯在 CLI 中执行磁盘分区命令,而且我不确定强制执行是否正确。
信息/研究
其他问题
这个问题讨论了格式化驱动器的所有主要方法。这似乎是一个线索,但在阅读完文档后,我发现的主要内容是我可能能够使用 -F 强制写入非块设备,但我不确定这是否会按预期进行,因为据我所知,新的 SSD 实际上是一个块设备。
磁盘布局:
- /dev/sda:这对于这个问题来说并不重要,只是它是我进行所有操作的主要 SSD 驱动器。
- /dev/sdb:新 SSD;空,带有 msdos 分区表。我希望新的 ntfs 分区覆盖整个驱动器,以便以后可以将
sudo ntfsclone -f --rescue --overwrite /dev/sdb1 /dev/sdc1
旧的 ntfs 分区克隆到这个新分区。值得注意的是,这是暂时插入我的 DVD 驱动器使用的 SATA 电缆。我很确定这只是意味着速度变慢了,但其实是一样的,但我可能搞错了。完成后,我会切换 SATA 端口,但我对这部分、BIOS 和 GRUB 刷新很满意,所以我预计那时不会再出现问题。此外,其他分区没有备份,因此无需考虑。 - /dev/sdc:这是我的旧磁盘硬盘。它速度不是很快,而且 ntfs 分区已经满了。我需要在更快的驱动器上创建一个更大的分区,然后停用它。
fdisk 输出:
dan@dan-box:~$ sudo fdisk -l
Disk /dev/sda: 256.1 GB, 256060514304 bytes
255 heads, 63 sectors/track, 31130 cylinders, total 500118192 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007d2fd
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 483571711 241784832 83 Linux
/dev/sda2 483573758 500117503 8271873 5 Extended
/dev/sda5 483573760 500117503 8271872 82 Linux swap / Solaris
Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d9497
Device Boot Start End Blocks Id System
Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b8aef
Device Boot Start End Blocks Id System
/dev/sdc1 * 2048 184322047 92160000 7 HPFS/NTFS/exFAT
/dev/sdc2 184322048 245762047 30720000 83 Linux
/dev/sdc3 245764094 1953523711 853879809 5 Extended
/dev/sdc5 245764096 261386239 7811072 82 Linux swap / Solaris
/dev/sdc6 261388288 1953523711 846067712 83 Linux
ls -l /dev/sdb?
brw-rw---- 1 root disk 8, 17 Sep 28 07:15 /dev/sdb1
apt-缓存策略 ntfs-3g
dan@dan-box:~$ sudo apt-cache policy ntfs-3g
[sudo] password for dan:
ntfs-3g:
Installed: 1:2013.1.13AR.1-2ubuntu2
Candidate: 1:2013.1.13AR.1-2ubuntu2
Version table:
*** 1:2013.1.13AR.1-2ubuntu2 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
100 /var/lib/dpkg/status
解决方案
以下被接受的答案是我的解决方案:我格式化为 EXT4。它修复了 NTFS 驱动程序无法修复的问题,因此当我删除 EXT4 分区时,我能够格式化为 NTFS。
奖励材料
不幸的是,我现在正在进行克隆步骤,大约 25 分钟后,我已经有大约 50 个无法读取的扇区。我可能会在旧驱动器上启动 Windows,制作恢复 DVD,启动新 SSD,运行检查和修复等,然后快乐的乐趣就开始了。我将编写一个开源 Python 应用程序来解析我混乱的悲伤扇区中的文件名!:)
答案1
这个错误很奇怪。当然,这是一个块设备。也许只是一点小问题。
这听起来像个笑话,但说真的;您是否尝试过将其关闭然后再次打开?
检查 的输出。它应该以块设备ls -l /dev/sdb?
开头。b
不过我可以告诉你为什么命令行调用失败。
mkntfs
(来自手册页)的正确语法是:
mkntfs [options] device [number-of-sectors]
与您的调用进行比较
mkntfs -Q -v -L -F "win7" /dev/sdb1
得出的结果/dev/sdb1
是number-of-sectors
。
参数的顺序很重要!
因为我猜win7
应该是分区标签,所以你需要转身-L -F
mkntfs -Q -v -F -L "win7" /dev/sdb1
尽管我不确定是否要强制执行它,但如果设备文件有问题。
顺便一提:克隆兹拉是一款功能非常完备的磁盘映像、恢复和克隆工具。它可以自动为您完成所有您想做的事情。