61阅读

linux下cp命令的用法-Linux下的fdisk用法

发布时间:2017-08-16 所属栏目:fdisk mbr

一 : Linux下的fdisk用法

Linux下的fdisk功能是极其强大的,用它可以划分出最复杂的分区,下面简要介绍一下它的用法:

对于IDE硬盘,每块盘有一个设备名:对应于主板的四个IDE接口,设备名依次为:/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd等,

如果还有IDE Raid卡,则依次为:/dev/hde,/dev/hdf,/dev/hdg,/dev/hdh。(www.61k.com)对于SCSI硬盘,则设备名依次为/dev/sda,/dev/sdb...等等

fdisk的命令行用法为: fdisk 硬盘设备名

进入fdisk后,首先键入'm',即可显示fdisk全部菜单。

再键入'p',显示当前分区表状态。

键入'n',增加一个分区,然后会提示你选择分区类型(基本分区或扩展分区),再选择分区号(1-4)。注:每块硬盘最多可划分四个主分区(包括基本分区和扩展分区),其中:基本分区最多可划分四个,扩展分区最多可划分一个,但扩展分区内可再划分多个逻辑分区(最多几个我没试过,总之很多)。选中你要建立的分区类型和分区号后,会提示输入起始柱面,从1开始;然后再输入终止柱面,此时可输入实际的柱面数,也可用"+分区尺寸"的方式输入,如:+1024M表示在起始柱面后加上1024M。主分区的设备名依次为:/dev/hda1,/dev/hda2,/dev/hda3,/dev/hda4,逻辑分区的设备名依次为:/dev/hda5,/dev/hda6,/dev/hda7...等等。

键入’d‘,删除分区,输入分区号即可删除。注意,删除扩展分区时,将会同时删除所有的逻辑分区。

键入’t‘,改变分区标志(这是Linux的fdisk最精华的部份!),新建的分区默认标志是83(Linux Ext2),你可以把它改为82(Linux 交换区)、或是'b'(FAT32)、'f'(FAT32 Extend,只限于扩展分区)、'86'(NTFS)。。。等几十种类型。这样一来,使用多操作系统的朋友们就可以用Linux的fdisk划分出你想要的所有分区了!

键入'a',切换分区激活开关。请注意:每键入一次,被选的分区就会在激活与非激活间变化一次,但你必须保证最后只有一个分区被激活。这时就用得到'p'命令了,被激活的分区上会有个'*'号。

除以上的几个命令外,还有其它几个,但不太常用。

最后,键入’w',你对分区所做的改变被写入硬盘;键入'q',则放弃所有的修改。

灵活应用fdisk,还可以修复一些损坏的分区表,前提是你必须准确记住原有每个分区的起始柱面和终止柱面。

再附加一下对硬盘进行格式化的方法:
要把分区格式化成Linux Ext2格式,用: mkext2fs /dev/hda?
要把分区格式化成FAT32格式,用: mkfs.vfat /dev/hda?
附2:
指令:fdisk

用途:观察硬盘之实体使用情形与分割硬盘用。

使用方法:

一、在 console 上输入 fdisk -l /dev/sda ,观察硬盘之实体使用情形。

二、在 console 上输入 fdisk /dev/sda,可进入分割硬盘模式。

1. 输入 m 显示所有命令列示。

2. 输入 p 显示硬盘分割情形。

3. 输入 a 设定硬盘启动区。

4. 输入 n 设定新的硬盘分割区。

4.1. 输入 e 硬盘为[延伸]分割区(extend)。

4.2. 输入 p 硬盘为[主要]分割区(primary)。

5. 输入 t 改变硬盘分割区属性。

6. 输入 d 删除硬盘分割区属性。

7. 输入 q 结束不存入硬盘分割区属性。

8. 输入 w 结束并写入硬盘分割区属性

eg:

格式化与分区

hd--IDE设备 sd--SCSI设备

fdisk -l /dev/sda 查看第一块硬盘分区情况

fdisk /dev/sdb 给第二块硬盘分区

command acton (m for help):m #显示命令列表

a-设置可引导标志;b-设置卷标; d-删除一个分区; n-新建分区

p-显示分区信息; v-校验分区表;q-不存盘退出;w-存盘退出;t-改变分区类型

command acton (m for help):n 新建分区

command action

e extended #扩展分区

p primary partition (1-4) #主分区

p #创建主分区

partition number (1-4):1 #创建第一个主分区

first cylinder (1-522,default 1):1 #起始柱面(第一个分区始终为1)

last cylinder or +size or +sizeM or +siezK(1-522,default 522): 10 #截止柱面(若522则整个硬盘分给了一个区)此分区大小是系统按照柱面大小自动计算出来的

command acton (m for help):n

command action

e extended

p primary partition (1-4)

p

partition number (1-4):2 #创建第二个主分区

first cylinder (11-522,default 11):11

last cylinder ...(11-522,default 522): +100M #自定义分区大小

command acton (m for help):n

command action

e extended

p primary partition (1-4)

e #创建扩展分区,注意一个磁盘只能创建一个扩展区

partition number (1-4):3

first cylinder (28-522,default 28):28

last cylinder ...(28-522,default 522):522 #将剩余空间全部分给扩展分区

扩展分区是不能直接使用的,必须在其上创建逻辑分区!

command acton (m for help):n

command action

l logical (5 or over) #逻辑分区

p primary partition (1-4)

l

first sylinder (28-255,default 28):28 #在扩展分区里建逻辑分区

last cylinder ...(28-522,default 522):522 #柱面用尽,等于说只建一个逻辑分区

command acton (m for help):w #保存退出

转换分区类型:

command acton (m for help):t #转换分区类型

partition number (1-4):2 #选择第二个主分区

 hex code (type L to list codes):82 #按L可列出分区类型所对应的编码

   可以使用 “partprobe” 命令,重新探测磁盘中分区清空,    #partprobe  /dev/sdb

格式化与挂载: (挂载目录可以自行创建也可指定存在的空目录)

mksf.ext3 /dev/sdb1 把第二块硬盘的第一个主分区格式化为ext3

mkswap /dev/sdb2 初始化swap区,此区不可格式化。

mount /dev/sdb1 /mnt/d #将第一个分区挂载到d这个目录

重启后自动挂载:vi /etc/fstab

添加:/dev/sdb1 /mnt/d ext3 default 0 0

二 : linux中sfdisk及parted的用法

linux中sfdisk及parted的用法

SFDISK:

sfdisk [-?Tvx][-d <硬盘>][-g <硬盘>][-l <硬盘>][-s <分区>][-V <硬盘>]

sfdisk为硬盘分区工具程序,可显示分区的设置信息,并检查分区是否正常。

参数: www.2cto.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]]

有几个选项可以供你使用。

选项:

&lsquo;-h&rsquo;

&lsquo;--help&rsquo; 显示帮助信息

&lsquo;-i&rsquo;

&lsquo;--interactive&rsquo;

进入交互模式

&lsquo;-v&rsquo;

&lsquo;--version&rsquo;

显示软件的版本号

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 &ndash; 限制:新的分区开始位置必须和原来的开始位置相同。也就是说,你只能向后扩展分区的大小。

* fat16, fat32

* hfs, hfs+, hfsx &ndash; 限制:新的分区开始位置必须和原来的开始位置相同。而且新的end必须小于原来的end。也就是说,你只能够缩小分区。

* linux-swap

* reiserfs (如果安装了libreiserfs库)

例: www.2cto.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(失效)。

&lsquo;boot&rsquo; (用于Mac, MS-DOS, PC98分区表) - 如果你想从某个分区引导,那么你应该将这个分区的boot标记设置为on。对于MS-DOS分区表,一个硬盘上只能有一个分区是可引导的。如果你将 LILO装到某个分区上,那么这个分区一定是可引导的(也就是说你应该将安装了LILO的分区的boot标记设为on)。对于PC98分区表,所有 ext3分区都必须是设置为可引导的。(Parted会对此强行操作)

&lsquo;lba&rsquo; (用于MS-DOS分区表)-这个标记可以告诉MS DOS、MS Windows 9x和 MS Windows ME等系统使用LBA(Logic Block Addressing)模式。

&lsquo;root&rsquo; (用于Mac分区表) - 如果某分区是Linux系统的根分区,那么就要对该分区启用这个标记。

&lsquo;swap&rsquo; (用于Mac分区表) - 如果某分区是Linux系统的交换分区,那么就要对该分区启用这个标记。

&lsquo;hidden&rsquo; (用于MS-DOS, PC98分区表) - 启用这个标记能使一个分区&lsquo;隐藏&rsquo;起来。(仅对微软的操作系统有效) www.2cto.com

&lsquo;raid&rsquo; (用于MS-DOS分区表)-启用这个标记能够告诉Linux系统这是一个软RAID磁盘阵。

&lsquo;LVM&rsquo;(用于MS-DOS分区表)-启用这个标记能够告诉Linux系统这是一个LVM逻辑。

使用print命令能够将所有能用的标记显示出来。

例:

(parted) set 1 boot on

将编号为1的分区的boot标记设定为on(生效)

unit (设置单位)

格式:unit unit

为Parted选择一个表示磁盘大小的单位。之后,凡是关于磁盘的位置(如分区的开始位置等等)的数字都是使用这个单位,你就可以不用给出单位后缀。(如:如果你选择了MB作为单位,那么512就代表512MB,你就不用额外打多个MB之类的东西)你可以使用下列单位: www.2cto.com

&lsquo;s&rsquo; :扇区 (通常一个扇区的大小是512个字节)

&lsquo;B&rsquo; byte

&lsquo;kB&rsquo; kilobyte (1000 bytes)

&lsquo;MB&rsquo; megabyte (1000000 bytes)

&lsquo;GB&rsquo; gigabyte (1000000000 bytes)

&lsquo;TB&rsquo; terabyte (1000000000000 bytes)

&lsquo;%&rsquo; 表示占整个磁盘设备的百分之多少(显而易见,这个数字必须在0和100之间)

&lsquo;cyl&rsquo; 柱面(这个具体的位置和BIOS的CHS地址有关)

&lsquo;chs&rsquo; 柱面(cylinders),磁头(heads),扇区(sectors)的地址(这个具体的位置和BIOS的CHS地址有关)

&lsquo;compact&rsquo; 这是一个比较奇怪的单位。输入时是使用MB作为单位,输出时的单位有可能不同,但是它确保输出时的单位能使用户一眼就看得出来磁盘的大小的,而不用心里默 默地进行复杂的换算。(例如。它会使用1GB而不是使用1024MB,使用2MB而不是2048KB)

一般来说,Parted只会 使用默认的单位进行输出,除非输入的时候你没有给出数字的后缀。你可以在输入的数字后面加上一个单位来代替默认的单位(单位和数字之间是没有空格的)。

三 : linux free命令中buffer与cache的区别

linux free命令中buffer与cache的区别

~$ free

total used free shared buffers cached

Mem: 1025204 981636 43568 0 38244 387808

-/+ buffers/cache: 555584 469620

Swap: 1931256 162948 1768308 www.2cto.com

也可以通过$watch free看到动态信息

以上为free命令的输出内容,从中可以得到当前系统内存使用情况.
系统的可用内存应该看第二行数据,

-buffers/cache=used-buffers-cached

+buffers/cache=free+buffers+cached

因为第一行的used包含了系统使用的buffer及cache,而free则没包含buffer及cache,
这部分也是可以使用的部分.

如上所示555584为真正的系统使用内存情况,而469620为系统真正的可用内存情况.

下面介绍buffer与cache的差别:

A buffer is something that has yet to be "written" to disk.

A cache is something that has been "read" from the disk and stored for later use.

buffer: www.2cto.com

缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据

的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据

时,速度快的设备的操作进程不发生间断。

cache:

高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于

CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期, Cache中保存

着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调

用,这样就减少了CPU的等待时间,提高了系统的效率。Cache又分为一级Cache(L1 Cache)

和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现

在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。

当你读写文件的时候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,

这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会

自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。

其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有

内存可用。如果你希望手动去释放Cache Memory也是有办法的。

如何释放Cache Memory(缓存内存), 用下面的命令可以释放Cache Memory:

To free pagecache

$sync; echo 1>/proc/sys/vm/drop_caches

To free dentries and inodes: www.2cto.com

$sync; echo 2>/proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:

$sync; echo 3>/proc/sys/vm/drop_caches

注意,释放前最好sync一下,防止丢失数据。

free命令中的buffer和cache:(它们都是占用内存):

buffer : 作为buffer cache的内存,是块设备的读写缓冲区

cache: 作为page cache的内存, 文件系统的cache

作者 yef.zhu

本文标题:linux下cp命令的用法-Linux下的fdisk用法
本文地址: http://www.61k.com/1084405.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1