小编Not*_*ble的帖子

如何更正 4096 字节扇区磁盘上的 512 字节扇区 MBR?

最终更新:

我已经知道我需要做什么来解决这个问题;我只是不知道该怎么做。我希望有一些现成的工具可以自动执行此操作 - 但找不到任何工具。我接受 Rod 的回答,因为尽管没有直接解决我的问题,但它为扇区大小问题提供了非常好的背景,并使我相信该问题确实是分区对齐和寻址。对于那些遇到同样问题的人,在做任何事情之前,请彻底仔细地阅读它,包括评论。


在一开始的时候

我有一台电脑,需要更多空间,我买了一个新的 500GB 驱动器和一个 USB 外壳。很快我就注意到,如果我对机箱上的驱动器进行分区并将其移动到计算机上,它就无法识别这些分区(反之亦然)。我认为这是外壳的问题,并没有担心。

那么,悲剧

美好的一天,我的电脑决定不再打开。结果发现主板(没有品牌,只是上面印着一个很大的 MADE IN CHINA)已经死了。我一直将它用作文件服务器,而那个 500GB 的驱动器现在充满了我不能丢失的数据。我现在破产了,买不起新电脑,所以我唯一的希望是“有缺陷的”USB 外壳。

调查

配备了几个 Linux 发行版、一台笔记本电脑、VirtualBox 和机箱,我对这个问题进行了取证分析。dmesg 报告分区大小超出驱动器末端。所以我查看了硬盘数据表,从头开始计算扇区数,用 dd 手动测试驱动器边界,一切看起来都很好,直到我启动 fdisk 并说:

    Note: Sector size is 4096 (not 512).
Run Code Online (Sandbox Code Playgroud)

多么谦虚的fdisk。这个“笔记”是所有问题的根源。经过一番折腾,得出了以下结论:

  • USB 外壳没有缺陷。

  • 至少现在已经死了的主板上的 SATA 控制器是一个“奇怪的”控制器。它没有向操作系统报告 4096 字节的扇区,因此操作系统愉快地使用 512 字节的扇区地址创建了 MBR。

  • 现在,当我尝试访问分区时,操作系统会尝试在 4096 字节的扇区驱动器上使用基于 512 字节的地址,当然,这是行不通的。

问题

  • 那么,除了在十六进制编辑器上手动编辑 MBR 之外,如何更正 MBR 中的地址,使它们在 4096 字节扇区大小上有效,以及

  • 分区未针对 4096 字节扇区对齐。除了复制进出另一个驱动器之外,还有一些工具可以用来对齐它们吗?(我没有备用驱动器),或者我是否需要创建一些工具将数据一次“转移”到一边一小块?分区是ext3。

谢谢!

更新:

我发现有一种聪明的方法可以使用 dd 在这个问题中就地移动分区How to move a partition in GNU/Linux? …

linux hard-drive mbr partitioning

24
推荐指数
1
解决办法
4万
查看次数

RAID-1 中出现故障的 Btrfs 驱动器可以实时更换吗?

我正在尝试决定一个文件系统,并想知道是否可以在不停机的情况下更换 btrfs RAID 中的故障驱动器。

  1. 假设我使用以下命令创建了一个新的 btrfs 文件系统

    mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
    
    Run Code Online (Sandbox Code Playgroud)
  2. 现在假设有一天/dev/sdc失败了。有两种可能性:它可能会逐渐失败,显示 SMART 错误 - 在这种情况下,我可以添加一个新设备,btrfs device add /dev/sde /mnt; btrfs filesystem balance /mnt然后删除旧设备btrfs device delete /dev/sdc /mnt

  3. 但是如果它突然失败,变得不可读......网络搜索说在这种情况下我必须首先卸载文件系统,以降级模式挂载,添加一个新设备,然后删除丢失的设备。

    umount /mnt
    mount -o degraded /dev/sdb /mnt
    btrfs device add /dev/sdf /mnt 
    btrfs device delete missing /mnt
    
    Run Code Online (Sandbox Code Playgroud)

卸载显然是一个破坏性的操作,所以会有停机时间——任何使用文件系统的应用程序都会出现 I/O 错误。但是考虑到 btrfs 正在大力发展,这些关于 btrfs 的“教程”看起来已经过时了。

问题是:考虑到 btrfs 的当前状态,是否可以在线执行此操作,即无需卸载?

如果没有,是否有可以满足这种需求的纯软件解决方案?

linux raid hard-drive btrfs

15
推荐指数
1
解决办法
6553
查看次数

如何将 U 盘与 PC 上的文件夹自动同步?

在我的工作中,我们不能保证永远使用同一台计算机。此外,我需要在旅行时将文件放在伸手可及的地方。这是一个“云”解决方案,但在巴西,移动连接仍然是一个问题,而且依赖公司网络总是存在防火墙和网络策略问题,因此云是行不通的。

所以我开始使用 16GB 的闪存驱动器来存储我所有的个人和工作文档。但我担心有一天我的拇指驱动器会死在我身上,我会失去一切。当我忘记在家并且无法访问我的文件时,我也很难过。

所以我正在寻找一些可以在我的家庭和工作计算机上运行的实用程序/脚本,每当我连接拇指驱动器时,它都会将它检测为我的拇指驱动器并与计算机上的文件夹同步,有点像rsync.

这些是所需的功能:

  • 安全识别拇指驱动器(使用特殊的“密钥”文件或卷序列号)
  • 只更新修改过的文件(没有愚蠢的复制,因为它有几个 GB)
  • 如果拇指驱动器和计算机上的文件都被修改,请询问要保留哪一个。
  • 我可以选择要同步的文件夹(例如不想同步音乐文件夹)
  • 非烦人的操作,如果需要,只需要求对冲突做出决定(但进度指示器会很好)。

可取但不是必需的,同步在删除之前自动完成(而不是在插入时)。

有没有现成的 Windows 工具来完成这项工作?这可以用批处理文件拉出来,但我想知道市场上是否已经有东西了。

谢谢!

为未来的观众更新..

SyncToy 非常好,但存在需要管理员帐户才能安装的缺陷。我需要与旧的 XP 工作计算机同步,但权限有限。我已经解决了Unison http://www.cis.upenn.edu/~bcpierce/unison/。它是一个命令行应用程序,但符合我的所有要求,不需要安装。

windows sync usb-flash-drive

9
推荐指数
1
解决办法
8万
查看次数

在 Windows 8.1 中,如何在访问共享文件夹时强制提示输入凭据?

我有一台装有 Windows Server 2008(“R1”)SP2 的计算机,用作家庭服务器,另一台装有 Windows 8.1(“家庭”),我每天都使用它。网络中没有域控制器。我使用用户 A 登录 Windows 8.1,我们称之为 PC\AUser。服务器上没有用户 A。我有一个用户 B 的共享文件夹,我们称之为 SERVER\BUser。

当我开始 -> 运行 \SERVER\SharedFolder\ 时,如何强制 Windows 8.1 要求提供凭据?

目前我只收到此错误:“您无权访问 \SERVER\SharedFolder。请联系您的网络管理员请求访问。”

通过将“所有人”添加到权限列表,我已经能够共享不受保护的文件夹。但是,一旦我删除了“所有人”,Windows 8 客户端就会直接说“您无权访问此文件夹”,而不要求提供任何凭据

我已经在 2000 年和 XP 时代完成了...

如何在 Windows 8.1 中强制提示输入凭据?

更新:

我已经使用以下命令从 Linux 客户端访问了它:

smbclient //SERVER/SharedFolder mypassword -U BUser
Run Code Online (Sandbox Code Playgroud)

所以这将问题转移到 Windows 8.1 客户端 - 服务器配置正常。

更新 2:

根据要求,这是我收到的错误消息。它是葡萄牙语,但有经验的用户会认出该窗口。它显示“标题:网络错误。Windows 无法访问 [文件夹]。您无权访问 [地址]。联系网络管理员以请求访问权限。”

错误信息。

更新 3:

我已经能够通过使用“映射网络驱动器...”选项并在那里手动设置凭据来连接到共享 - 但首先我必须使用取消映射共享,net use /delete因为 Windows 似乎在失败的连接上创建了一个陈旧的映射尝试(wtf?)。这样,至少现在对我来说是可用的。但是,如果有人可以解决或解释 Windows 8.1 无法连接权限错误而不是要求凭据的问题,则会给予赏金。

最终更新:

找到了解决办法!我已将其发布为答案。

windows-server-2008 network-shares permissions windows-8.1

6
推荐指数
1
解决办法
4万
查看次数