本文主要是介绍linux fdisk 命令 磁盘划分新的分区及挂载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天VirualBox中的Ubuntu进不了系统,用guest用户登录后知道存储不足,在网上找到了解决办法誊抄下来已做备份;进入linux的安全模式需开机后长按[b]shift[/b]
linux fdisk 命令
fdisk - Partition table manipulator for Linux
一.通过fdisk -l 查看机器所挂硬盘个数及分区情况;
fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统,比如linux,fat32,linux swap,fat16以及其实类Unix类操作系统的文件系统等.当然用fdisk 对磁盘操作分区后,还要对分区进行格式化所需要的文件系统,这样一个分区才能使用.
主分区[Primary](包括扩展分区[Extended])的总数不能超过4个;也就是说主分区[Primary]+扩展分区[Extended]总数最多是4,扩展分区[Extended]分区只能有一个
因此如果要分成4快磁盘分区的话,那么最多是可以:
P+P+P+P 或者
P+P+P+E
其中3P+E只有3个可用的磁盘,扩展分区不能直接使用,还要分区成逻辑分区[Logical]才行.
fdisk -l 查看硬盘及分区信息
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux 主分区
/dev/sda2 14 6387 51199155 83 Linux 主分区
/dev/sda3 6388 7407 8193150 82 Linux swap / Solaris 主分区
/dev/sda4 7408 60801 428887305 5 Extended 扩展分区
/dev/sda5 7408 20155 102398278+ 83 Linux 逻辑分区
/dev/sda6 20156 26529 51199123+ 83 Linux 逻辑分区
通过上面的信息 我们知道此机器挂载了1个硬盘sda,大小500G
有255个磁面,63个扇区,60801个磁柱;
每个磁柱的容量是8225280 bytes 约为 8.225280M
sda有4个主分区sda1,sda2,sda3,sda4(扩展分区),逻辑分区是sd5,sd6
硬盘总容量=主分区(包括扩展分区)总容量
扩展分区容量=逻辑分区总容量+未分完的总容量
Start :表示的一个分区从X cylinder(磁柱)开始;
End :表示一个分区到 Y cylinder(磁柱)结束;
id和System 表示的是一个意思,id看起来不太直观,我们要在fdisk 一个分区时,通过指定id来确认分区类型;比如 7表示的就NTFS 分区;这个在fdisk 中要通过t功能来指定。
Blocks:表示这个磁盘有多少个os块,单位是k,通常一个os块大小可以通过命令查看 /sbin/tune2fs -l /dev/sda1 里面有block size参数
Blocks = (相应分区End数值 - 相应分区Start数值)x 单位cylinder(磁柱)的容量,就是这个磁盘拥有多少空间的量
从上面看出 扩展分区从7408到60801磁柱 而逻辑分区只从7408到26529磁柱,说明扩展分区还未分完
二.下面看如何增加一个分区
#fdisk /dev/sda
Command (m for help):m [在这里按m ,就会输出帮助]
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition 注:这是删除一个分区的动作;
l list known partition types 注:l是列出分区类型,以供我们设置相应分区的类型;
m print this menu 注:m 是列出帮助信息;
n add a new partition 注:添加一个分区;
o create a new empty DOS partition table
p print the partition table 注:p列出分区表;
q quit without saving changes 注:不保存退出;
s create a new empty Sun disklabel
t change a partition's system id 注:t 改变分区类型;
u change display/entry units
v verify the partition table
w write table to disk and exit 注:把分区表写入硬盘并退出;
x extra functionality (experts only) 注:扩展应用,专家功能;
警告:删除分区时要小心,请看好分区的序号,如果您删除了扩展分区,扩展分区之下的逻辑分区都会删除;所以操作时一定要小心;如果知道自己操作错了,请不要惊慌,用q不保存退出;切记切记!!!!在分区操作错了之时,千万不要输入w保存退出!!!
出现上面的菜单后 按下p 先看下分区情况
Command (m for help): p
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 6387 51199155 83 Linux
/dev/sda3 6388 7407 8193150 82 Linux swap / Solaris
/dev/sda4 7408 60801 428887305 5 Extended
/dev/sda5 7408 20155 102398278+ 83 Linux
/dev/sda6 20156 26529 51199123+ 83 Linux
然后按下n (添加一个分区)
Command (m for help): n
First cylinder (26530-60801, default 26530): 27000
这里提示这个分区从哪个磁柱开始,默认接着上一个分区,这里回车就是默认值.这里最好直接按回车,如果您输入了一个非默认的数字,会造成空间浪费;
然后出现
Last cylinder or +size or +sizeM or +sizeK (26530-60801, default 60801):
注:这个是定义分区大小的,+200M 就是大小为200M ;当然您也可以根据p提示的单位cylinder的大小来算,然后来指定 End的数值;如果您想添加一个10G左右大小的分区,请输入 +10000M ;
输入好了 可以fdisk 的退出,用q或者w
其中 q是不保存退出,w是保存退出
Command (m for help): w
或
Command (m for help): q
由于我这台机器已经有4分主分区
如果主分区未达到4个,达到了4个不会出现
按n添加一个分区时候 会出现
Command (m for help): n (注:添加分区;)
Command action
e extended
p primary partition (1-4)
这时根据自己需要选择主分区还是扩展分区了.
三.分区完以后还要对分区格式化以及加载
用 mkfs.bfs mkfs.ext2 mkfs.jfs mkfs.msdos mkfs.vfatmkfs.cramfs mkfs.ext3 mkfs.minix mkfs.reiserfs mkfs.xfs 等命令来格式化分区,比如我想格式化 sda7为ext3文件系统,则输入;
# mkfs.ext3 /dev/sda7
然后加载sda7到目前系统来存取文件,应该有mount 命令,但首先您得建一个挂载目录;比如 /mnt/sda7
# mount /dev/sda7 /mnt/sda7
然后 df -lh 查看
就能进入 /mnt/sda7目录,然后存取文件了
四.让硬盘启动自动挂载
用vi编辑/etc/fstab文件,加入如下内容
/dev/sda7 /mnt/sda7 ext3 defaults 1 2
/etc/fstab 这个文件还有另外一些参数 以后再写了.
摘自[url]http://blog.itpub.net/29392174/viewspace-1064061/[/url]
先把两个硬盘分区,格式化,然后挂载到系统里面,比如要保存usr的那个硬盘挂载到/mnt/usr下,保存home的那个硬盘挂载到/mnt/home(/mnt/usr,/mnt/home要自己建立),然后先分别拷贝原来系统的/usr和/home的东西到/mnt/usr和/mnt/home,拷贝完成,卸载两个新磁盘的挂载, 然后再把这两个磁盘分别挂载到/home和/usr修改/etc/fstab,修改完成后,mount -a,应该就可以了,你可以mount命令查看下
1)新建一个有足够空间的分区给你要搬移的目录,比如/home
2) 新建一个目录,$mkdir /mnt/newhome
3)把新建的分区挂载到新建的目录下,$sudo mount -t ext3 /dev/hda5 /mnt/newhome
(这里假设了,新建的分区是ext3类型的,并且是在/dev/hda5)
4)把整个/home都拷贝过去,
$cd /home/
$find . -depth -print0 | cpio --null --sparse -pvd /mnt/newhome/ (未测试)
tar cpf - .|(cd /mnt/opttemp; tar xvpf -) (在opt目录里面,命令当中有个.) (已测试)
5)卸载 $sudo umount /mnt/newhome
6)把原来的/home 改名,$sudo mv /home /old_home
7)新建一个/home,sudo mkdir /home
把分区挂载过来,$sudo mount /dev/hda5 /home
9)在 “/etc/fstab” file里加上/dev/hda5 /home ext3 nodev,nosuid 0 2,让系统启动的时候就自动挂载。
10)把就的home删除,$sudo rm -r /old_home
tar cpf - .|(cd /mnt/opttemp; tar xvpf -)
这一条测试过了,在生产机上做过,从别处转过来的,可用
这篇关于linux fdisk 命令 磁盘划分新的分区及挂载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!