Linux下解决同一硬盘因为连接设备不一样导致扇区大小不一致的问题
浏览:701次 出处信息
我有块硬盘放进了我家云盒子里面,前段时间想把这个硬盘拿出来插到电脑上面拷贝数据,结果发现分区表完全是乱的,分区变小了很多,在电脑上调整了分区表以后大小对了,放回我家云盒子,分区表又变得不合法了。
仔细研究了一下,发现硬盘直接接在电脑上面时候,扇区大小是 512 字节的,但是接在我家云盒子上面,扇区的大小是 4096 字节。之前有人说有些 USB 硬盘线也会造成这样的效果,大概也是相同的情况。分区表里面的单位都是按照扇区大小来计算的,所以分区大小自然也就不一样了
知道了这个原因就是想解决方式了。Linux 下面解决起来倒是简单,loop 设备设置的时候可以用 -sector-size 来设置大小,因此我们只要先不着急 mount 硬盘,用 losetup 设置一个扇区大小是 512 字节的 loop 设备。之后在 loop 设备上面再分区和格式化,就可以让这个硬盘在电脑上也可以正常读取了。
需要注意的是,不同的设备有可能导致最终看到的扇区数也是不一样的,我实测电脑比我家云盒子多看到几KB的大小,因此在 losetup 时候通常需要手动加上 -sizelimit 的值。
例如
losetup -P -sector-size 4096 -sizelimit 3000591892480 -f /dev/sda
之后直接对 loop 设备分区啥的就都很正常了
建议继续学习:
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:SSH 密钥管理工具
后一篇:sudoers: 允许用户免密用root权限执行某些命令 >>
文章信息
- 作者:kxn 来源: Kxn's eXercise Notes
- 标签: 扇区 硬盘 设备
- 发布时间:2021-05-26 22:50:13
近3天十大热文
- [55] Oracle MTS模式下 进程地址与会话信
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 如何拿下简短的域名
- [53] 图书馆的世界纪录
- [53] android 开发入门
- [52] Go Reflect 性能
- [49] 读书笔记-壹百度:百度十年千倍的29条法则
- [49] 【社会化设计】自我(self)部分――欢迎区
- [38] 程序员技术练级攻略
- [33] 视觉调整-设计师 vs. 逻辑