linux fdisk 命令 磁盘划分新的分区及挂载

今天VirualBox中的Ubuntu进不了系统,用guest用户登录后知道存储不足,在网上找到了解决办法誊抄下来已做备份;

进入linux的安全模式需开机后长按 shift

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 这个文件还有另外一些参数 以后再写了.

摘自 http://blog.itpub.net/29392174/viewspace-1064061/

先把两个硬盘分区,格式化,然后挂载到系统里面,比如要保存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 -)
这一条测试过了,在生产机上做过,从别处转过来的,可用

猜你喜欢

转载自tomhat.iteye.com/blog/2303968