我想了解逻辑驱动器的位置(例如 C:
, D:
)在物理驱动器上的映射位置(例如,我的笔记本电脑连接了 Western Digital 和 Toshiba 物理磁盘)。
在 Linux 上,我会执行以下操作:
lsblk
Run Code Online (Sandbox Code Playgroud)
查看文件系统布局。然后
ls -lh /dev/disk/by-id
Run Code Online (Sandbox Code Playgroud)
查看文件系统如何映射到物理设备(ID 通常在其中包含设备的名称)。
如何在 MS Windows 中实现类似的功能?我尝试查看控制面板 → 设备管理器,但那里没有有用的信息。也不在逻辑驱动器的属性中。谷歌搜索给我找到了这个wmic
实用程序,但要么我不明白它的输出,要么信息不存在。
在终端中,我的 Volumes 目录如下所示:
"Sanitized"-Computer:Volumes "sanatizedUserName"$ ls
Backup of "Sanitized"’s MacBook Macintosh HD
LaCie iDisk
LaCie-1
Run Code Online (Sandbox Code Playgroud)
不知何故,我有一个重复的“LaCie”驱动器,我无法访问它来删除它。这是一个机场驱动器。OS X 必须有一个首选项文件,它保留了我可以删除的过去网络驱动器。
它仅在插入真实驱动器时安装。我害怕删除此副本,因为它可能会删除真实数据。
我相信这个“幽灵”驱动器正在破坏我的时间机器备份。
权限:
"Sanitized"-Computer:Volumes "sanatizedUserName"$ ls -al
drwx------@ 26 root wheel 840 Aug 10 18:41 LaCie-1
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助。
我只是一个梦想家,还是存在这样的事情?
在 Mac OS X 中,/.vol
目录是干什么用的?我注意到 Excel 通常使用/.vol
路径来尊重文件(在工具中进行调查时)。它是用于存放临时文件的文件夹,还是包含指向卷中所有文件的链接?
如果是这样,我如何通过其/.vol
路径引用文件?
我有一个使用磁盘工具创建的 10G 加密卷包。我想更改它的加密密码。我怎样才能做到这一点?
我有两个 500GB 硬盘,来自我工作场所的一台旧 Windows 笔记本电脑。我的老板让我尽可能将内容复制到文件服务器,但要注意绝对不会丢失任何数据。
通常情况下,备份就足够了,但这是从操作的早期开始,当时备份之类的东西没有更严格地保存,而且这个人的组织非常糟糕,所以我不确定备份是否最多- 最新(或什至是最新的)内容。
我做的第一件事是使用ddrescue
. 复制了分区表的驱动器没有错误,另一个驱动器因错误丢失了大约 150 KiB。图像以只读方式安装到/dev/loop1
并/dev/loop2
使用losetup
. fdisk -l
显示以下内容:
Disk /dev/loop1: 465.8 GiB, 500107862016 bytes, 976773168 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 /dev/loop2: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes …
Run Code Online (Sandbox Code Playgroud) 我想将卷从较小的驱动器移动到较大的未格式化驱动器。实现这一目标的最佳方法是什么?理想情况下,我希望新卷与旧卷具有相同的名称,因为它包含用户帐户,并且是我在其他卷上拥有的各种符号链接的目的地。
更新:我最后使用了 Carbon Copy Cloner,它工作得很好。我能够简单地将 Finder 中的新卷重命名为与旧卷相同的名称,然后关闭电源并移除该卷所在的旧驱动器。当我重新启动时,新卷无缝地代替了旧卷。
有谁知道如何更改卷的 UUID?这个问题的背景是我有一个重复的 UUID 问题:
我有/Volumes/OldMacHD
一个 XYZ 的 UUID。我有/Volumes/Mirror1
一个 XYZ 的 UUID(相同的 UUID!我敢打赌这是因为 OldMacHD 曾经是这个镜像的一部分)。我通过以下方式获得了这些 UUID:
diskutil info /dev/thatdisknumber | grep UUID
Run Code Online (Sandbox Code Playgroud)
我想更改Mirror1
.
我偶然发现了该hfs.util
实用程序,因为这些毕竟是 HFS 卷。该用于手册页hfs.util
说,如果你发出的-s
标志,这改变了UUID。但是,如果您自己输入hfs.util
所有内容,它根本不会向您显示-s
选项,只会显示除此之外的所有选项!咕噜噜 反正我试过了:
sudo /System/Library/Filesystems/hfs.fs/hfs.util -s /dev/disk4 (the raid volume).
Run Code Online (Sandbox Code Playgroud)
没发生什么事。没有错误信息,没有成功信息。UUID 完全一样。我在卸载卷时尝试过。
有任何想法吗?
这类似于这里提出的问题:
唯一的区别是我想将其更改为特定值,而不是随机值。hfs.util 似乎只是随机的。
我考虑修改hfs.util 源以允许我指定值。当我在代码中寻找从哪里开始进行更改时,我想起了为什么 C不是我最喜欢的语言。后来几次编译错误和段错误,我失去了尝试修改这个工具的热情。我愿意在休息后再次尝试,但我认为必须有一种更简单的方法来更改我只是不知道的卷的 UUID。
所以在我浪费时间之前,有没有人知道一种简单的方法来做到这一点?或者有没有 C 专家愿意加入我的努力,让 hfs.util 将 UUID 更改为指定值?
以下是我为了能够从源 OS X 10.6.8 编译该工具所做的更改:
hfsutil_jnl.c:
47: #include <hfs_fsctl.h>
Run Code Online (Sandbox Code Playgroud)
hfsutil_main.c:
80: #include <uuid/uuid.h>
81: /* REMOVED */
Run Code Online (Sandbox Code Playgroud)
并且,正如本文所暗示的,将fs.c 中第 166 行的以下内容添加到 hfsutil_main.c(因为 namespace.h 不在系统中的任何位置):
static unsigned char kFSUUIDNamespaceSHA1[] = {0xB3,0xE2,0x0F,0x39,0xF2,0x92,0x11,0xD6,0x97,0xA4,0x00,0x30,0x65,0x43,0xEC,0xAC};
Run Code Online (Sandbox Code Playgroud)
最后,我抓取了这个文件并将其添加到工作目录http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/hfs/hfs_fsctl.h
我一直在研究磁盘的逻辑和物理块大小...
[旧磁盘]逻辑上(4KB) -> 物理上(8 * 512B) -------数据集群
[新磁盘,旧操作系统]逻辑上(4KB) -> 物理上(4KB(8 * 512B)) ------AF *512e 模式
[新磁盘,新操作系统]逻辑上(4KB) -> 物理上(4KB) -------4K Native Mode
但是我是 SSD 的新手,并且一直在阅读(见下文)SSD 没有物理扇区,它们有物理页面……这些页面在“逻辑上”与所谓的 SSD 块相关联。
SSD 布局 与硬盘相反,SSD 由半导体内存构建块组成,它不包含任何机械部件。SSD的最小单位是page,它由若干个内存单元组成,大小通常为4KB。SSD 上的几个页面汇总为一个块。块是 SSD 上的最小访问单位。目前,128页大多合并为一个块;因此,一个块包含 512 KB。
问题:
logical-drive ×10
macos ×6
hard-drive ×3
hfs ×2
mac ×2
partitioning ×2
uuid ×2
windows ×2
boot ×1
c ×1
disk-utility ×1
drive-letter ×1
encryption ×1
filesystems ×1
linux ×1
migration ×1
path ×1
raid ×1
ssd ×1
storage ×1
terminal ×1