Linux初来乍到,之前在VMware虚拟机上安装的Ubuntu kylin14.10,由于只分配了20G 的空间,导致编译内核时候严重不够用。于是想扩展磁盘容量。那么在虚拟机关机以后把磁盘容量扩展到30G以后,在虚拟机内还需要创建分区和文件系统才能用。于是一条条来。
首先是查看命令,其中最常用的是fdisk -l和df -h。
fdish -l返回结果如下格式:
Device Boot Start End Blocks Id System
/dev/sda1 * 1 638 5120000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 638 893 2048000 83 Linux
Partition 2 does not end on cylinder boundary.
/dev/sda3 893 1020 1024000 82 Linux swap / Solaris
Partition 3 does not end on cylinder boundary.
/dev/sda4 1020 1306 2292736 5 Extended
/dev/sda5 1021 1306 2291712 83 Linux
会列出你每块磁盘的情况。那么df -h则偏重于文件系统,返回格式如下:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 95G 918M 89G 1% / tmpfs 2.0G 0 2.0G 0% /lib/init/rw udev 2.0G 224K 2.0G 1% /dev tmpfs 2.0G 3.1M 2.0G 1% /dev/shm /dev/mapper/pve-data 344G 2.3G 342G 1% /var/lib/vz /dev/fuse 30M 16K 30M 1% /etc/pve
我自己的磁盘是sda3和sda4分区还没有分的。进入分区管理的命令是fdisk /dev/sda
进入以后会首先提示你command m for help,也就是输入m回车就会列出所有的命令,最常用的几个有:
command p:列出partition分区表,结果跟fdisk -l是一样的。
command d:删除某个分区。
command n:创建新分区。
那么我创建好了分区以后(假设我创建的是sda4分区),如果需要使用,则还需要先创立文件系统然后挂载。我当前系统的文件系统是ext3和ext4的格式。
创建文件系统的命令有mkfs和mke2fs,mke2fs默认就是make ext2 filesystem。但是也可以创建其他格式的文件系统。而mkfs可以写为mkfs.ext2、mkfs.ext3、mkfs.ext4这种形式。
但是两者最常用最简单的用法还是:
命令 -t 文件系统格式 分区名称。
例如:mkfs -t ext4 /dev/sda4。在现今的Linux其实更希望你用ext4。
那么创立文件系统以后,需要挂载。但是要注意的是!千万不要挂载到跟之前有过的分区挂载过的同一目录!千万不要挂载到跟之前有过的分区挂载过的同一目录!千万不要挂载到跟之前有过的分区挂载过的同一目录!重要的事情说三遍!
尤其是不能挂载到根目录!
当然如果不小心挂载了解决办法也是很简单的。如果你挂载到了其他一般性的文件夹,其实直接umount卸载也就可以了。如果你真的挂载到了根目录下了,我之前就犯了这个错误,那么你是umount不了的,会提示你正在使用中。那么怎么办呢?
/etc/fstab这个文件是修改开机自动挂载的。如果你没有把你刚刚创立的文件系统的挂载加到这一行,那么直接重启电脑完事,如果你真的加了,那么就删除这一行然后重启吧。重启以后,你对根目录多余的那个挂载由于没有设置开机自动挂载,也就不会再挂上去。
为什么不让你在一个目录挂载两个分区文件系统?因为后一个挂载上去,会把前一个的内容覆盖掉。虽然东西并没有消失,你却看不到了。只有把后一块卸载才能看回前一个的东西。
好,接下来回归正题,其实挂载也很简单:mount -t 选项 -o 选项 文件系统名 文件夹名。
-t 详细选项(如果只是新建的文件系统挂载其实用不着-t):
光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Mount Windows文件网络共享:smbfs(需内核支持)推荐cifs
UNIX(LINUX) 文件网络共享:nfs
-o 详细选项(默认是rw,所以其实也可以不写):
loop :用来把一个文件当成硬盘分区挂接上系统
ro :采用只读方式挂接设备
rw :采用读写方式挂接设备
iocharset :指定访问文件系统所用字符集,例如iocharset=utf8
remount :重新挂载
文件系统名其实也就是这里的分区名啦,我这里用的/dev/sda4。
文件夹名就随便选你想要的了,我这里选的/mnt。挂载完毕是直接生效的。
然后可以选择开机自动挂载,就是刚刚说的/etc/fstab文件,编辑一下即可。格式参照该文件里面最上面的对dev/sda1的挂载的格式就好。
奏是这样~这些都是最基本的命令,复杂的我也不太会。