案例背景:
为了平时给开发测试部门方便快速的部署新的linux系统,于是搭建了一套网络安装服务器,使用Kickstart进行新环境的部署(当然,使用openstack这样的开源云平台进行测试环境的搭建,删除会更加便捷)
今天,公司买回来一台1U的组装机器,更平时一样,开箱,上架,接电源,接网线,点亮机器,按F12进入网络安装,接下来是耐心的等待...,然而这次有麻烦了.
问题描述:
所谓有图有真相,上图说理
遇到这个问题就坑人了,第一个选项,File Bug,第二个Exit installer, 也就是要么你牛,自己去DEBUG吧,要么退出安装,这不玩人吗?
再看具体的报错:Cant' write to /dev/sda ,because it is opened read-only
既然这样,那我们就切换个终端看看这个/dev/sda是个啥,真的无法操作?
大概看一下,明明在BIOS里面看到只有一块硬盘,也就是此处显示的/dev/sdb,500GB,竟然多送了2G的一块盘?
想想就知道不可能,只能说毕竟是个服务器,这2GB的磁盘估计是用来存储一些服务器驱动玩意的。
那么看看到底能不能删除分区。
果然没骗我们,删除不了,商家说:我的东西你也敢碰?
那就不删了呗,就算删除了,也不是只读操作了,又能怎样,,2GB你打算玩什么?
所以解决问题的根本不是在这里,而是需要解决如何分区创建在/dev/sdb上面,将bootloader安装在/dev/sdb上。
那么有人会说,那你出现这类错误的原始配置文件ks.cfg是怎样写的?
OK,此处列出主要的信息,也就是分区信息,分区位置
# Partition clearing information clearpart --all --initlabel # Disk partitioning information part / --asprimary --fstype="ext4" --size=50000 part /boot --fstype="ext4" --size=200 part /var --fstype="ext4" --size=300000 part swap --fstype="swap" --size=16000
大家主要去观察的不是分区大小,而是分区所在硬盘,可以看到,一般来说,我们不会去指定第一块硬盘,而是默认分区,也就意味着系统在进行硬盘分区的时候,首选/dev/sda,那么遇到我们现在的情况,那就歇菜了。
问题解决
问题找到了,就去解决问题了,明显只需要修改配置文件中分区相关的配置:
# Partition clearing information ignoredisk --drives=sda clearpart --all --drives=sdb # Disk partitioning information part /boot --fstype="ext4" --size=100 part swap --fstype="swap" --size=12000 part / --fstype="ext4" --size=50000 part /var --asprimary --fstype="ext4" --size=300000
主要修改:
ignoredisk --drives=sda
clearpart --all --drives=sdb
主要目的,实现了对/dev/sda的无视,默认分区在/dev/sdb上面,默认grub启动器也安装在/dev/sdb上面。
问题就这么愉快的解决了!