1、最简单的方法,ln命令建立符号链接,把其他分区的文件夹链接过来。
2、也可以用分区调整软件调整/home分区的大小。
3、更换分区也行,把当前/home分区的内容全部复制到新分区,注意权限设置。然后更改/etc/fstab文件中/home分区的挂载。
(2、3两种方式都应该认真检查/etc/fstab文件有没有问题。
Linux
Linux *** 作系统是基于UNIX *** 作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10月5日(这是第一次正式向外公布的时间)。
有两种方法实现对linux分区的扩容。第一种方式是软链接(符号链接)。举个例子来说明下软链接,假如你的/b目录满了,不能存储文件。这时你把/a目录链接到/b目录,你在访问/b目录时实际是访问/a目录里面的空间。
软链接的创建方式为:“
ln
-s
目录a
目录b/文件夹c”。意思是在目录b下创建一个文件夹名为c的软链接,链接地址是目录a。在向目录b下文件夹c存放文件时,实际存放位置是目录a。
软链接的方式可以在不改变数据的情况下通过链接到另外的空间解决了容量不足的问题,但是如果硬盘空间本身不足,那么就要用另外的解决方案了——增加磁盘。在扩容磁盘前需要将容量已满的/b目录中的数据拷贝到其他位置。此种方式能从根本上解决磁盘容量不足的问题。
假设新增的磁盘为xvdb1,首先对磁盘分区,具体方法参考网上教程分区完成后制作文件系统(顺序不可乱)。完成后先将原先目录已满的/b从原挂载点卸载,例如:umount
/dev/xvda1
/b。卸载掉挂载在/b目录下的分区xvda1。重新将新增的分区挂载到/b:mount
/dev/xvdb1
/b。将/etc/fstab内加入新挂载的分区和挂载点,这一点非常重要,否则重启后分区会丢失。至此,原来已满的/b被重新挂载到了新的硬盘分区,然后将原来备份的文件拷贝回来就可以了。
这里以Red hat AS4 为例。当磁盘分区发现不够用时,能想道的第一个做法就是增加分区大小。但是一般Linux如果没有采用逻辑卷管理,则动态增加分区大小很困难,一个能想道的办法就是,备份分区文件系统数据,删除分区,然后再重新创建分区,恢复备份的文件系统,这个做法比较玄,可能删除分区后导致系统无法启动。第二个做法就是,创建一个新的逻辑分区(当然必须有未使用的磁盘空间能分配),将文件系统从老分区拷贝到新分区,然后修改fstab,使用新分区/文件系统替换老的分区/文件系统
第三种做法是,创建一个新的逻辑分区,将新的逻辑分区格式化ext3(或其他类型)的文件系统,mount到磁盘空间不够的文件系统,就跟原来的分区/文件系统一样的使用。
这里采用的是第三种方式:
sdb为第二个SCSI硬盘。
[root@hdp0 hadoop]# /sbin/fdisk /dev/sdb
The number of cylinders for this disk is set to 8942.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/sdb: 73.5 GB, 73557090304 bytes
255 heads, 63 sectors/track, 8942 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 130 1044193+ 83 Linux
/dev/sdb2 131 391 2096482+ 82 Linux swap
/dev/sdb3 392 521 1044225 83 Linux
/dev/sdb4 522894267641682+ 5 Extended
/dev/sdb5 522 586 522081 83 Linux
/dev/sdb6 587 651 522081 83 Linux
/dev/sdb7 6521173 4192933+ 83 Linux
可以看出sdb1,2,3为主分区,sdb4为扩展分区。后面的sdb5,6,7则为逻辑分区。柱面编号(Start,End)是连续的,sdb7只用道了1173,而从扩展分区看最大到8942,也就是说,还有7769个柱面是空闲的,一个柱面大小为8225280,约为8M大小。还剩7769*8225280bytes,约62G未使用。
新增加一个逻辑分区(注:若涉及到主分区和扩展分区,实际情况可能比这个复杂,这里4个主分区(包括扩展分区)都分过了,所以只能分逻辑分区)
Command (m for help): n
First cylinder (1174-8942, default 1174):
Using default value 1174
增加大小为10G
Last cylinder or +size or +sizeM or +sizeK (1174-8942, default 8942): +10240M
增加后看一下,多了一个逻辑分区/dev/sdb8
Command (m for help): p
Disk /dev/sdb: 73.5 GB, 73557090304 bytes
255 heads, 63 sectors/track, 8942 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 130 1044193+ 83 Linux
/dev/sdb2 131 391 2096482+ 82 Linux swap
/dev/sdb3 392 521 1044225 83 Linux
/dev/sdb4 522894267641682+ 5 Extended
/dev/sdb5 522 586 522081 83 Linux
/dev/sdb6 587 651 522081 83 Linux
/dev/sdb7 6521173 4192933+ 83 Linux
/dev/sdb81174241910008463+ 83 Linux
可以看到,增加了一个sdb8的分区,柱面号从1174到2419.
写入分区表,执行分区 *** 作
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
分区完后,是看不到文件系统的
[root@hdp0 hadoop]# df -m
Filesystem 1M-块已用 可用 已用% 挂载点
/dev/sdb1 1004 582 372 62% /
none 1014 0 1014 0% /dev/shm
/dev/sdb3 1004 807 147 85% /home
/dev/sdb5 49411 458 3% /opt
/dev/sdb7 4031 3272 554 86% /usr
/dev/sdb6 49487 382 19% /var
重启机器
reboot
格式化文件系统
[root@hdp0 hadoop]#/sbin/mkfs.ext3 /dev/sdb8
mount文件系统,/home/develop 为/home下一目录
[root@hdp0 hadoop]#mount /dev/sdb8 /home/develop
查看文件系统,可以看到新建立的分区/文件系统已经挂载上,能够使用了。
[root@hdp0 hadoop]# df -m
Filesystem 1M-块已用 可用 已用% 挂载点
/dev/sdb1 1004 582 372 62% /
none 1014 0 1014 0% /dev/shm
/dev/sdb3 1004 807 147 85% /home
/dev/sdb5 49411 458 3% /opt
/dev/sdb7 4031 3272 554 86% /usr
/dev/sdb6 49487 382 19% /var
/dev/sdb8 962154 9079 1% /home/develop
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)