知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

linux中sfdisk及parted的用法

发布时间:2014-09-05 15:22:58作者:知识屋

linux中sfdisk及parted的用法
 
SFDISK:
sfdisk [-?Tvx][-d <硬盘>][-g <硬盘>][-l <硬盘>][-s <分区>][-V <硬盘>]
sfdisk为硬盘分区工具程序,可显示分区的设置信息,并检查分区是否正常。
参数:  www.zhishiwu.com  
 -?或--help 显示帮助。
 
  -d<硬盘> 显示硬盘分区的设置。
 
  -g<硬盘>或--show-geometry<硬盘> 显示硬盘的CHS参数。
 
  -l<硬盘> 显示后硬盘分区的相关设置。
 
  -s<分区> 显示分区的大小,单位为区块。
 
  -T或--list-types 显示所有sfdisk能辨识的文件系统ID。
 
  -v或--version 显示版本信息。
 
  -V<硬盘>或--verify<硬盘> 检查硬盘分区是否正常。
 
  -x或--show-extend 显示扩展分区中的逻辑分区。
 
PARTED:
 
我们在工作中会发现,我们使用平时的分区工具fdisk不能创建大于2T的分区, 
是linux不支持吗?不对,现在的Linux内核中支持Large Block Device,完全可以使用大于2T的块设备 
 使用parted 建立大小超过2T的分区
假设/dev/sdb大小为7T的存储设备 
parted /dev/sdb 
print 查看分区的情况,找到起始位置
 命令行模式的选项 
当你调用命令行模式时,Parted的语法是这样的: 
# parted [option] device [command [argument]] 
有几个选项可以供你使用。
选项: 
‘-h’ 
‘--help’ 显示帮助信息 
‘-i’ 
‘--interactive’ 
进入交互模式 
‘-v’ 
‘--version’ 
显示软件的版本号 
Parted 交互模式下的命令 
GNU Parted 提供以下命令: 
 check(检查) 
格式:check number 
检查编号中所指定的文件系统是否有什么错误.。 
例: 
(parted) check 1 
检查分区1上的文件系统. 
cp(复制) 
格式:cp [from-device] from-number to-number 
将分区 from-number上的文件系统完整地复制到分区to-number 中。分区to-number 上的数据会被全部删除。你可以再指定一个来源硬盘的设备名称 from-device来指定来源分区所在的硬盘。 
该命令支持以下文件系统: 
* ext2, ext3 (所提供的目标分区必须比源分区要大) 
* fat16, fat32 
* linux-swap (相当于再目标分区执行mkswap 命令) 
* reiserfs (如果安装了libreiserfs库) 
例: 
(parted) cp /dev/hdb 2 3 
将/dev/hdb上的第二个分区的内容复制到第三个分区上。 
 help(帮助) 
格式:help [command] 
输出一个命令的帮助信息 
例: 
(parted) help resize 
输出rezize 命令的帮助信息。 
 mklabel(建立分区表) 
格式:mklabel label-type 
建 立一个 label-type 类型的磁盘分区表。新的分区表不会有任何分区。这个命令通常不会破坏你的数据,但是它有可能让你的数据变得不可读。这是你就需要用到rescue 命令来恢复分区。关于rescue 命令的用法请参见后文。Parted 能在各种分区表上工作。 
label-type 必须是一下这些类型: 
* bsd 
* loop (raw disk access) 
* gpt 
* mac 
* msdos 
* pc98 
* sun 
例: 
(parted) mklabel msdos 
建立一个MS-DOS格式的分区表。这对于PC而言是一个非常常见的操作。 
mkfs(建立文件系统) 
格式:mkfs number fs-type 
在指定的分区上建立指定的文件系统。这个命令会破坏该分区上的所有数据。 
该命令支持以下文件系统: 
* ext2 
* fat16, fat32 
* linux-swap 
* reiserfs (如果安装了libreiserfs库) 
例: 
(parted) mkfs 2 fat32 
在第二个分区上建立FAT32格式的文件系统。 
mkpart(建立新分区) 
格式:mkpart part-type [fs-type] start end 
建 立一个新的分区。若要建立非扩展分区,就最好用fs-type来指定文件系统。start和end是新分区开始和结束的具体位置。part-type是以 下类型之一: primary(主分区), extended(扩展分区), logical(逻辑分区). 扩展分区和逻辑分区只对msdos 和dvh分区表有效。 
fs-type必须是以下文件系统: 
* ext2 
* fat16, fat32 
* hfs, hfs+, hfsx 
* linux-swap 
* NTFS 
* reiserfs 
* ufs 
例: 
(parted) mkpart logical 0.0 692.1 
建立一个包含ext2文件系统的逻辑分区,其位置是从磁盘的开始位置(0.0)到692.1M之间 。 
mkpartfs(建立分区及其文件系统) 
格式:mkpartfs part-type fs-type start end 
建 立一个新的分区,并在上面建立文件系统。与mkpart相似,分区的位置处于begin和end之间,默认的单位是MB.。请勿使用这个命令来恢复一个被 删除了的分区(应使用mkpart)。part-type是以下类型之一: primary(主分区), extended(扩展分区), logical(逻辑分区). 扩展分区和逻辑分区只对msdos 和dvh分区表有效。 fs-type必须是以下文件系统: 
* ext2 
* fat16, fat32 
* linux-swap 
* reiserfs (如果安装了libreiserfs库) 
例: 
(parted) mkpartfs logical ext2 440 670 
建立一个a包含ex2格式文件系统的逻辑分区。其开始位置是440 MB,结束位置是670MB。 
move(移动) 
格式:move number start end 
该 命令能将选定的分区在硬盘中移动。start 可以指定一个新的分区的起始位置。不过,你不能将一个分区移到另一个分区上。也就是说,你只能在空闲的地方中移动分区。如果你想改变分区的大小,那么你所 需要的命令是resize 。另外,虽然分区被移动了,但它的分区编号是不会改变的。 
该命令支持以下文件系统: 
* ext2, ext3 (所提供的目标分区必须比源分区要大) 
* fat16, fat32 
* linux-swap 
* reiserfs (如果安装了libreiserfs库) 
例: 
(parted) move 2 150M 500M 
将编号为2的分区移动到硬盘中150M至500M的位置。 
name (命名) 
格式:name number name 
为编号所指定的分区命名(只支持GPT, Mac, MIPS 和PC98 格式的分区)。名字可以用引号括起来。
 print (输出信息) 
格式:print [number] 
输出parted正在操作的硬盘的分区表的信息,或者是某一个具体分区的信息。
 quit (退出) 
格式:quit 
退出Parted. 
只有当Parted退出后,Linux内核才会知道磁盘的设置已经被改变了。但是实际上只要你一执行一条命令,更改马上就会写入磁盘。不过,磁盘缓存有可能延缓写入的操作。 
 rescue (恢复) 
格式:rescue start end 
如果你不小心用Parted的rm命令删除了一个分区,那么这个命令可以帮你恢复。你需要给出所误删的分区的大概的开始和结束的位置。Parted 就会在你给出的磁盘区域内去寻找,如果找到这个分区,那么Parted 就会询问你是否重新建立这个分区。
 resize (调整大小) 
格式:resize number start end 
将编号所指定的分区调整大小。分区的开始位置和结束位置由start和end决定。resize不会改变分区的编号。注意,如果更改扩展分区的大小,那么你必须保证新的分区大小能够容纳里面的逻辑分区。另外,在调整大小前你无须对分区进行碎片整理。 
该命令支持以下文件系统: 
* ext2, ext3 – 限制:新的分区开始位置必须和原来的开始位置相同。也就是说,你只能向后扩展分区的大小。 
* fat16, fat32 
* hfs, hfs+, hfsx – 限制:新的分区开始位置必须和原来的开始位置相同。而且新的end必须小于原来的end。也就是说,你只能够缩小分区。 
* linux-swap 
* reiserfs (如果安装了libreiserfs库) 
例:   www.zhishiwu.com  
(parted) resize 3 200M 850M 
改变编号为3的分区的大小。其新的位置是200MB至 850MB 之间。 
 rm (删除分区) 
格式:rm number 
将 编号所指定的分区删除。如果你误删了某个分区,那么你还可以用mkpart来挽救它(而不是用mkpartds)。注意,如果你使用的是MSDOS格式的 分区表,那么假如你删除了一个逻辑分区,那么该分区后面的逻辑分区的编号都会相应地向前改变。例如,你删除了编号为6的逻辑分区,那么后面的7、8号逻辑 分区的编号将会改变,分别变成6、7号逻辑分区。若在Linux下。这意味着你可能要改变/etc/fstab文件。 
例: 
(parted) rm 3 
将编号为3的分区删除。 
 select (选择设备) 
格式:select device 
选择Parted将要编辑的磁盘设备。这个磁盘设备可以是一个Linux硬盘设备,一个软盘、一个软RAID磁盘阵或者是LVM逻辑卷。 
例: 
(parted) select /dev/hdb 
选择/dev/hdb作为Parted所要编辑的设备。 
 set (设置标记) 
格式:set number flag state 
更改编号所指定的分区的标记。哪些标记可用是由你的分区表决定的。标记有两种状态,要么是on(生效),要么是off(失效)。 
‘boot’ (用于Mac, MS-DOS, PC98分区表) - 如果你想从某个分区引导,那么你应该将这个分区的boot标记设置为on。对于MS-DOS分区表,一个硬盘上只能有一个分区是可引导的。如果你将 LILO装到某个分区上,那么这个分区一定是可引导的(也就是说你应该将安装了LILO的分区的boot标记设为on)。对于PC98分区表,所有 ext3分区都必须是设置为可引导的。(Parted会对此强行操作) 
‘lba’ (用于MS-DOS分区表)-这个标记可以告诉MS DOS、MS Windows 9x和 MS Windows ME等系统使用LBA(Logic Block Addressing)模式。 
‘root’ (用于Mac分区表) - 如果某分区是Linux系统的根分区,那么就要对该分区启用这个标记。 
‘swap’ (用于Mac分区表) - 如果某分区是Linux系统的交换分区,那么就要对该分区启用这个标记。 
‘hidden’ (用于MS-DOS, PC98分区表) - 启用这个标记能使一个分区‘隐藏’起来。(仅对微软的操作系统有效)  www.zhishiwu.com  
‘raid’ (用于MS-DOS分区表)-启用这个标记能够告诉Linux系统这是一个软RAID磁盘阵。 
‘LVM’(用于MS-DOS分区表)-启用这个标记能够告诉Linux系统这是一个LVM逻辑。 
使用print命令能够将所有能用的标记显示出来。 
例: 
(parted) set 1 boot on 
将编号为1的分区的boot标记设定为on(生效) 
unit (设置单位) 
格式:unit unit 
为Parted选择一个表示磁盘大小的单位。之后,凡是关于磁盘的位置(如分区的开始位置等等)的数字都是使用这个单位,你就可以不用给出单位后缀。(如:如果你选择了MB作为单位,那么512就代表512MB,你就不用额外打多个MB之类的东西)你可以使用下列单位:   www.zhishiwu.com  
‘s’ :扇区 (通常一个扇区的大小是512个字节) 
‘B’ byte 
‘kB’ kilobyte (1000 bytes) 
‘MB’ megabyte (1000000 bytes) 
‘GB’ gigabyte (1000000000 bytes) 
‘TB’ terabyte (1000000000000 bytes) 
‘%’ 表示占整个磁盘设备的百分之多少(显而易见,这个数字必须在0和100之间) 
‘cyl’ 柱面(这个具体的位置和BIOS的CHS地址有关) 
‘chs’ 柱面(cylinders),磁头(heads),扇区(sectors)的地址(这个具体的位置和BIOS的CHS地址有关) 
‘compact’ 这是一个比较奇怪的单位。输入时是使用MB作为单位,输出时的单位有可能不同,但是它确保输出时的单位能使用户一眼就看得出来磁盘的大小的,而不用心里默 默地进行复杂的换算。(例如。它会使用1GB而不是使用1024MB,使用2MB而不是2048KB) 
一般来说,Parted只会 使用默认的单位进行输出,除非输入的时候你没有给出数字的后缀。你可以在输入的数字后面加上一个单位来代替默认的单位(单位和数字之间是没有空格的)。
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜