admin管理员组文章数量:1532161
2023年12月21日发(作者:)
当Linux下换新硬盘遇到4k对齐问题时……
Version: wincent 2012-9-12
From:ACN
作为一IT苦逼穷人,在忍受了自泰国洪水后JS长达一年多的囤货死扛,终在近期价格缓缓暗降后,终于忍无可忍,在一些非柜台的边沿淘家店中直接上门提了一块1T日立笔记本硬盘,给俺的神船本本再扩一下容,释放一下为时已久的空间压力。
因现在新出的硬盘都用了新的所谓高级格式化方式,需要做4k对齐(详情请自己狗狗或摆渡,这里只着重描述过程)。现时神船本本上装的是Centos6.3,按日立官方上的声明,内核版本需在2.6.34以上方能支持4k对齐,如下图:
于是试着再次yum update一下系统,发现升级后的内核仍达不到要求:
# cat /boot/grub/
*********
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/
hiddenmenu
title CentOS (6.x86_64)
root (hd0,0)
kernel /boot/6.x86_64 ro root=UUID=f7042228-1174-4327-89b9-76964f62f1a3 rd_NO_LUKS rd_NO_LVM LANG=en_-8 rd_NO_MD
SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM quiet
crashkernel=auto
initrd /boot/6.x86_
title CentOS (6.x86_64)
root (hd0,0)
kernel /boot/6.x86_64 ro root=UUID=f7042228-1174-4327-89b9-76964f62f1a3 rd_NO_LUKS rd_NO_LVM LANG=en_-8 rd_NO_MD
SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM quiet
crashkernel=auto
initrd /boot/6.x86_
title CCLU (6.x86_64)
****************
Update了后的内核还只是6.x86_64,俺的惰性又来了嘿嘿,
不想编译新内核,尝试着用fdisk不加参数分区,分完后用fdisk –l查看:
Disk /dev/sdc: 1000.2 GB, 1 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes (并非是4k file systems)
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x48123c12
再试着用fdisk –b 4096进行分区,结果出现了类似下面的错误:
Disk /dev/sdc: 1000.2 GB, 1 bytes
255 heads, 63 sectors/track, 15200 cylinders
Units = cylinders of 16065 * 4096 = 65802240 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x48123c12
Device Boot Start End Blocks Id System
/dev/sdc1 1 229 14715284 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sdc2 229 555 20948760 83 Linux
Partition 2 does not end on cylinder boundary.
/dev/sdc3 555 718 10474380 83 Linux
Partition 3 does not end on cylinder boundary.
/dev/sdc4 718 15200 930613324 5 Extended
/dev/sdc5 719 2024 83923308 83 Linux
/dev/sdc6 2025 15200 846689512 83 Linux
拿来到win7下用日立的AcronisAlignTool查看,全未对齐,并且在win的磁盘管理下分区显示面目全非,真悲剧!后再试着按网上有人说的先用dd if=/dev/zero of=/dev/sdX
bs=4096 count=1 再用fdisk –b 4096 /dev/sdc分区,结果更悲剧了,fdisk –b 4096
/dev/sdc刚一回车,一阵弹钢琴和紧刹车的声音从那小小的硬盘里尖叫出来,吓得俺小心肝嘣嘣直跳,迫不得已直接断电。再不敢尝试,也奉劝各位大大不要轻易尝试这招了,弄不好新买的硬盘还没用上就直接就拿回去送修了。看来不能偷懒,下载新的内核来编译了。
打开/pub/linux/kernel/v2.6/ ,找到最新的内核版本,下载那个最小的压缩格式,懒嘛 :,别看下载的内核才区区60M,解压后就达到487M,编译过程需要的空间更是达到4.2G。俺可怜兮兮紧张的空间一开始没料到需要这么大,结果编译过程中发现空间不够,一删再删……所以一开始就找个足够大的空间,然后用在/usr/src中ln链接过去即可,以下供需要者参考的编译过程记录:
安装新内核:
# mkdir /home/tmp/
把下载的内核放入刚建好的/home/tmp/下:
#xz -dk
#tar –xvf
#cd /usr/src/
# ln -s /home/tmp/linux-2.6.39.4 linux-2.6.39.4
#cd linux-2.6.39.4
# make mrproper
懒招又来了,cp当前系统配置,不用自己详细make menuconfig晕到爆
#cp /boot/6.x86_64 .config (如果没有更新到这一内核,请用别的config文件代替)
# vi .config
# CONFIG_SYSFS_DEPRECATED_V2 is not set
CONFIG_SYSFS_DEPRECATED_V2=y (加上这一条)
# make menuconfig
第一项General setup中选中下列两项:
编译安装内核,这是一个较漫长的过程,要有耐心哦
# make all
# make modules_install
# make install
完成修改启动菜单,让系统从新内核启动:
#vi /boot/grub/
******************************
#boot=/dev/sda
default=0 (改为0)
timeout=5
splashimage=(hd0,0)/boot/grub/
hiddenmenu
title CentOS (2.6.39.4)
root (hd0,0)
kernel /boot/vmlinuz-2.6.39.4 ro root=UUID=f7042228-1174-4327-89b9-76964f62f1a3 rd_NO_LUKS
rd_NO_LVM LANG=en_-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc
KEYTABLE=us rd_NO_DM quiet crashkernel=auto
initrd /boot/
title CentOS (6.x86_64)
root (hd0,0)
************************************
启动后重新用我没有再用linux下的fdisk来分区,因为考虑到我最终还是需要一个windows的分区,还是win下分来得方便并且可能兼容性更好,目前日立提供的工具似乎也只有win下的,就先在win7下分好了,因为 win7本身就支持4k对齐了。其它分区回到linux下用fdisk 改了分区标志转成了linux分区,然后用4建立文件系统,最终fdisk –l时:
Disk /dev/sdb: 1000.2 GB, 1 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes (已是4k file systems)
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x48123c12
Device Boot Start End Blocks Id System
/dev/sdb1 1 2612 20976640 83 Linux
/dev/sdb2 * 2612 5224 20980736 82 Linux swap / Solaris
/dev/sdb3 5224 121602 934801408 f W95 Ext'd (LBA)
/dev/sdb5 5224 16974 94376960 83 Linux
/dev/sdb6 16974 121602 840422400 83 Linux
用win7下的工具检查,发现也全部对齐,至此正常使用了!
版权声明:本文标题:当Linux下换新硬盘遇到4k对齐问题时 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1703120833a39874.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论