出错信息是:
** 执行下列分区操作时失败:
正在将分区 /dev/sda1 扩展至 459.77GB(Progress bar will not move. May take very long. Do not ABORT)
系统错误代码:-1021**
然后我就不知道是真的有错还是没有错
又重装了一遍,/ 419GB, /usr/local 40GB(反正要想不出上面的提示就得保留这个 40G 分区,想了半天没想好给谁,就给 /usr/local 好了)
出错信息是:
** 执行下列分区操作时失败:
正在将分区 /dev/sda1 扩展至 459.77GB(Progress bar will not move. May take very long. Do not ABORT)
系统错误代码:-1021**
然后我就不知道是真的有错还是没有错
又重装了一遍,/ 419GB, /usr/local 40GB(反正要想不出上面的提示就得保留这个 40G 分区,想了半天没想好给谁,就给 /usr/local 好了)
我也研究了一下,发现应该是自动分区的问题。默认分区已经分好,给 / 的空间只有 20G,其他的都分好了,没有空余,所以不能分得更多。你删掉两个分区,再添加一个分区给 /,会发现他的上限是你删掉两个分区的和。把分区全部干掉,就可以把全部空间都给 / 了。
试了,然后就报那个错(虽然我不确定是否真是个错)
1021:硬盘剩余空间不足
扩展操作是要有空白未分区的空间的吧,如果没有的话先缩小其它的分区留出空白空间才可以~
$ grep -r " 扩展至" /usr/share/locale/zh_CN/LC_MESSAGES
匹配到二进制文件 /usr/share/locale/zh_CN/LC_MESSAGES/libstorage.mo
去 i18n.opensuse.org/stats/openSUSE-12.3/zh_CN/lcn/index.php 下载 libstorage.po
找到那条 string 的位置在:…/storage/Partition.cc:506
去 google 搜索 “openSUSE /storage/Partition.cc”,得到这里:
github.com/openSUSE/libstorage/blob/master/storage/Partition.cc
git clone 之,然后
$ grep -r "1021" ./libstorage
./storage/StorageInterface.h: DISK_RESIZE_PARTITION_PARTED_FAILED = -1021,
打开那个文件你就得到了全部的 error code。你的错误是:
DISK_RESIZE_PARTITION_PARTED_FAILED
继续 grep:
$ grep -r "DISK_RESIZE_PARTITION_PARTED_FAILED" ./
./Disk.cc: ret = DISK_RESIZE_PARTITION_PARTED_FAILED;
./StorageInterface.h: DISK_RESIZE_PARTITION_PARTED_FAILED = -1021,
打开 Disk.cc:
if( execCheckFailed( cmd_line.str() ) )
{
ret = DISK_RESIZE_PARTITION_PARTED_FAILED;
}
execCheckFailed 定义在同一个文件里:
int Disk::execCheckFailed( SystemCmd& cmd, const string& cmd_line )
{
cmd.execute( cmd_line );
int ret = checkSystemError( cmd_line, cmd );
if( ret!=0 )
setExtError( cmd );
return( ret );
}
同样 Disk::checkSystemError 也在这个文件里,你的错误是最后一个 else:
if( ret != 0 )
{
if( dmp_slave && tmp.empty() )
{
y2mil( "resetting retcode " << ret << " of:" << cmd_line );
ret = 0;
}
else
y2err("retcode:" << cmd.retcode());
}
return( ret );
}
简单说就是你的分区方案有问题。
所以请给出你的分区方案的截图。
另外
zh.opensuse.org/SDB:%E5%88%86%E5%8C%BA
doc.opensuse.org/documentation/html/openSUSE/opensuse-reference/cha.advdisk.html
供参考。
我今晚刚在虚拟机里装了个 GNOME 桌面的 openSUSE。
我想提醒你的是:
如果你是修改它提议的那个方案, 扩展一个位置在中间的盘(比如 /),那你要把它后面的分区先都删了 ,然后中间那个盘的最大可分配容量才会上去。
比如这个图,你想改 / 的最大大小,那你必须先把 /home 删了,改好重新建,不然后面的空间始终是占用的,YaST 的缩小分区是往前缩不是往后缩,也就是说即使你缩小了 /home,可用空间也是在 /home 的后面,/ 依然用不了,除非你去缩小 /swap。
或者也可以直接用「创建分区配置」,然后「自定义分区」,然后整张硬盘都是你的了,一个一个分区添加。主要是 swap, / 和 /home。
gparted 应该可以从前面缩小分区吧~
yast 分区缩小分区后移动应该也可以把分区前面的空间空出来~
楼主可能遇到关于分区的问题:
硬盘分为主分区和扩展分区,主分区最多三个,扩展分区 1 个,在扩展分区下面可以建很多分区。
例如一个 100G 的硬盘,我把它分成了 50G 扩展分区,一个 20G 的主分区,一个 30G 的主分区,那么在扩展分区下最多能建立一个 50G 的子分区,在主分区上,你可以删除 20G, 或者 30G 的分区,在建立一个对应大小的分区,或者把它们都删除,建立一个 50G 的主分区。同时扩展分区在一些条件下可以转换位主分区。可能楼主没有注意分区细节吧。
在安装过程中,我每次都是手动分区,这样比较合适。
对于一般的用户来说 20G 主分区够了。除非有特殊要求,目前我的 / 没有超过 20G