之前在vm中安装ubuntu18.04的时候,觉得30GB已经挺大了,结果在linux里安装了hadoop一圈的软件,然后又安装了idea,eclipse,pycharm,anaconda等一系列软件,今天打开资源管理器的时候,系统警告空间不足。
想都没想,我就把ubuntu关了,然后在虚拟机中给分配到了50GB,重新启动,我去,怎么还是只有30个G。网上搜了一圈才明白,原来后面分配的20个G,属于未分配的资源,晕。一开始以为扩容很简单,结果看了许多博客,倒腾了大半天,试了n多种方法,踩了巨多坑才弄好,思维一度非常混乱,最终还是决定整理一下,给之后的小伙伴一点帮助。
使用ubuntu下的fdisk
命令进入
# 1. 进入命令
sudo fdisk /dev/sda
使用m查看fdisk
所有可以操作的命令,然后使用p打印磁盘信息进行查看,可以看到虽然给ubuntu分配了50个GB,但是实际只有30GB挂载上去了,还有20个GB没有使用。
# 使用p打印磁盘信息
Command (m for help): p
Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors
...
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 62912511 62910464 30G 83 Linux
接着开始正式分区
# 2. 使用n新建分区
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
# 3. 使用p选择分区类型为primary
Select (default p): p
# 4. 选择分区号为2,linux最多可以挂载4个分区,我已经有了一个分区,所以这相当于我的第二个分区
Partition number (2-4, default 2): 2
First sector (62912512-104857599, default 62912512):
Last sector, +sectors or +size{
K,M,G,T,P} (62912512-104857599, default 104857599):
# 5. 保存对磁盘的更改操作并退出
Command (m for help): w
The partition table has been altered.
Syncing disks.
最后再查看分区信息,可以看到剩下的20个GB磁盘已经分配好了
# 使用p打印磁盘信息
Command (m for help): p
Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors
...
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 62912511 62910464 30G 83 Linux
# 这里是刚刚分配好的20个G磁盘
/dev/sda2 62912512 104857599 41945088 20G 83 Linux
分配好磁盘之后,还需要进行格式化操作
# 6. 格式化刚刚分配出来的磁盘
$ sudo mkfs.ext3 /dev/sda2
mke2fs 1.44.1 (24-Mar-2018)
...
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
最后修改挂载,如果仅仅使用mount命令,则每次开机都需要手动加载,所以直接写到文件系统表中
# 7. 打开文件系统表,file system table
sudo vi /etc/fstab
# 8. 在最后一行添加如下信息,把sda2这个磁盘挂载到mnt/newdisk目录下
mount -t ext3 /dev/sda2 /mnt/newdisk
最后打开资源管理器的时候,应该是这样,多一个20G的磁盘
可悲的是,发现任何东西都不能写进去,百度了一圈设置挂载的选项也没有用
# -t w这里的w表示可写,然而并没有什么卵用
mount -t ext3,w -o user /dev/sda2 /mnt/newdisk
不过找到一篇非常不错的文章,值得参考:Linux挂载
最后采用最粗暴的方法
epen in terminal
,可以看到这个磁盘的具体位置(base) hadoop@ubuntu:/media/hadoop/343ee784-5ee0-4231-ae22-2c2df77223d8$
sudo chmod 777 /media/hadoop/343ee784-5ee0-4231-ae22-2c2df77223d8
问题解决。