ubuntu服务器系统如果出现存储空间不足时需要扩容,我们看如何将该硬盘的存储空间利用起来。
ubuntu系统没有虚拟盘的概念,是通过将盘挂载到文件来实现的。
明白了以上的概念,我们来看两种扩容的方法:
1、 ubuntu LVM扩容,在ubuntu系统安装的时候有个选项专门是选择是否需要LVM的,这里一般都会选择。没有可以自行百度如何安装,这个的好处在于可以将多块硬盘用统一的一个虚拟设备编号,让用户感受不到自己在不同的硬盘里工作,类似于将不同的分区合一,比较方便的是这样可以将新加入的硬盘与原有硬盘在逻辑卷中是一块完成的逻辑盘,方便用户扩容,而且自身的程序和文件并没有受到任何影响。
<1>、刚刚插上的硬盘没有分区,通过下面的命令找到为分区的新硬盘。
sudo fdisk -l
<2>、开始对磁盘进行分区,键入以下命令。(sdb是我电脑上未分区的空间)
sudo fdisk /dev/sdb
<3>、此时会弹出,Command (m for help), 输入:p
<4>、然后输入:n,所有选项默认即可
<5>、因为我们要做LVM的,所以类型要变为8e,因此这一步要输入:t
<6>、类型选择上输入:8e
<7>、输入w,创建分区成功
<8>、创建pv
sudo pvcreate /dev/sdb1
查看目前LVM的volume group信息
sudo vgdisplay
<9>、扩展lv
将新的分区sdb1加入LVM中,ubuntu05-vg是我的电脑上的名字,具体名字要自己在上一步看清楚
sudo vgextend ubuntu05-vg /dev/sdb1
<10>、添加分区到逻辑卷中
sudo lvextend -L +1T /dev/ubuntu05-vg/root
<11>、resize逻辑卷
sudo resize2fs /dev/ubuntu05-vg/root
最后可以功过df命令来查看磁盘占有情况,如果成功就可以看到有一个分区会变得很大,这就说明我们已经添加上了。
2、如果我们装机时,没有选择LVM选项而且还想在原来的工作目录下完成各种工作,但是原来的盘已经满了,这该怎么办,对于像我这种脑残,经常干这种事儿,除了上述的方法1比较麻烦的解决,还有一种比较快捷的方式。
根据1中的方法,用下面的命令创建出sdb1分区之后,当然,你的分区名字不一定是啥哦。
sudo fdisk /dev/sdb
当分区创建成功之后,我们要对分区进行格式化。该步骤比较慢,我的4T硬盘格式化了一下午。
mkfs -t ext3 /dev/sdb1
挂载分区:所谓挂载分区就是将该分区挂载到一个文件夹下面,换句话说,windows下的盘的概念在ubuntu中表现为文件的概念,因为ubuntu没有盘的概念。所以,可以理解为某一个文件夹的名字就是访问该分区的入口,类似于C盘,D盘那样的,该步需要创建文件夹和挂载分区两步
mkdir sdd
sudo mount /dev/sdb1 sdd
为了开机能够自动挂载而不需要手动挂载,修改/etc/fstab文件,在文件夹中添加,具体的路径和自己的文件夹位置有关
/dev/sdb1 /home/user/ssd ext4 defaults, 0 1
挂载之后,为了能够将继续在当前目录下工作,我们需要做如下操作,将原有的文件夹移动至新的分区中,同时将文件夹链接到当前工作目录下,
mv data sdd
ln -s sdd/data data
这样原来的工作目录/user/data下的任何操作都可以进行,而实际的操作发生在 ssd/data下。
参考: