Ubuntu 命令行扩容
一开始管理员没有意识到总共有1T的硬盘,系统有了4个主分区使用500G,后面需要扩容使用未使用的空间
0. 备份要扩容的分区挂载的文件夹。
0.1 查看分区:
$ sudo fdisk -l
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total **1953525168** sectors
**Units = 扇区 of 1 * 512 = 512 bytes** #通过这个1953525168×0.5K~1T
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000c5d95
设备 启动 起点 终点 块数 Id 系统
/dev/sda1 * 2048 194559 96256 83 Linux
/dev/sda2 194560 195506175 97655808 83 Linux
/dev/sda3 195506176 211318783 7906304 82 Linux 交换 / Solaris
0.2 在知道分区后,需要备份对应的文件夹,例如/work可能被/dev/sda4挂载。可以使用“sudo cat /etc/fstab”来查看这个具体的挂载位置,如/sda1挂在/boot下。其他字段的解释见参考文献
$ *sudo cat /etc/fstab*
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
UUID=5723c017-35a7-4ff4-bd86-5f4730494962 / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda1 during installation //例如/dev/sda1挂在/boot目录下
UUID=80931630-4261-495e-9547-afc3f3ac0999 /boot ext4 defaults 0 2
- Ubuntu系统中最多有4个主分区,或者有3个主分区+扩展分区(扩展分区可以继续添加分区)。这里因为有4块主分区,需要删除一块主分区(!!!!先备份,如使用mv等),首先使用m查看帮助。然后输入d,后面要求输入对应的数字,这个数字是sda后面的数字,如sda4 则要输入4进行删除。
$ sudo fdisk /dev/sda
命令(输入 m 获取帮助): m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
1.1 删除完成后需要新建,这里需要注意,把剩下的空间全部划分给扩展分区后,还需要在扩展分区上新建分区,所以这里新建了两次。输入第一次n后一直按回车确认好。然后输入第二次n后一直按回车确认好。
1.2 输入w写入这个分区信息。
PS: 注意要是1.1中不在扩展分区上新建分区(不输入第二次n后)会出现下面的错误,这个错误的分析参考文献。
inode_size (128) * inodes_count (0) too big for a filesystem with 0 blocks, specify higher inode_ratio (-i) or lower inode count (-N)
2 写入分区后可能会提示忙,但是可以先把那个分区格式化和mount。
2.1 格式化,先使用partprobe重新读取分区。
$ sudo partprobe /dev/sda
2.2 使用“cat /proc/partitions”查看分区信息。
$ cat /proc/partitions
major minor #blocks name
......
8 5 871102168 sda5
2.3 因为一开始新增加的分区格式可能和其他分区不一致,需要格式化
$ df -T -h
文件系统 类型 容量 已用 可用 已用% 挂载点
....
/dev/sda2 ext4 92G 60G 27G 70% /
....
/dev/sda1 ext4 88M 47M 35M 58% /boot
/dev/sda5 ext4 818G 73M 776G 1% /media/
2.4 使用ext4格式化,见参考文献
sudo mkfs.ext4 /dev/sda5
mke2fs 1.42.9 (4-Feb-2014)
2.5 开始重新mount,使用永久挂载的方法
2.5.1 查看那个uuid。
$ sudo blkid /dev/sda5
/dev/sda5: UUID="980a68d5-6aee-4404-96a4-e785e89fde5f" TYPE="ext4"
2.5.2 编辑那个/etc/fstab。把以前文件夹挂载的uuid换成新用的uuid。
# /work was on /dev/sda4 during installation
UUID=980a68d5-6aee-4404-96a4-e785e89fde5f /work ext4 defaults 0 2
2.5.3 检查如下:
$ sudo mount -a
$ df -a
3.权限不够。
安装完成后,想新建文件夹的时候发现提示没有权限,这个时候修改那个/etc/fstab没有用的,需要按照以下方法修改。
xxxx是用户名,yyyy是组名,/work是工作路径。可以用命令“sudo cat /etc/shadow”来看用户名和对应的组名。
$ sudo chown -R xxxx:yyyy /work