第三章 驱动开发_fdisk命令 & cp命令 & 主次设备号

1. 使用linux下的fdisk工具进行分区。

用root用户登录到你的linux系统,查看你系统的分区

#fdisk -l

会出现以下的信息:

Device Boot Start End Blocks Id System

/dev/sda1 * 1 64 512000 83 Linux

/dev/sda2 64 2611 20458496 8e Linux LVM

根据提示信息可以判断出此系统的磁盘接口为SCSI,对应“sda”如果上面的红色字体是“hda”,那么此系统的磁盘接口为IDE对应“hda”所以我做一下操作:

#fdisk /dev/sda/

WARNING: DOS-compatible mode is deprecated. It's stronglyrecommended to

switch off the mode (command 'c') and change display unitsto

sectors (command 'u').

Command (m for help):m //“ 列出fdisk的帮助”

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

m print this menu

n add a new partition

o create a new empty DOS partition table

p print the partition table

q quit without saving changes

s create a new empty Sun disklabel

t change a partition's system id

u change display/entry units

v verify the partition table

w write table to disk and exit

x extra functionality (experts only)

Command (m for help):n //” 命令n用于添加新分区"

Command action

e extended

p primary partition (1-4)

p //" 选择创建主分区"此时,

Partition number (1-4):3//fdisk会让你选择主分区的编号,如果已经有了主分区sda1,sda2,那么编号就选3,即要创建的该分区为sda3.

First cylinder (2611-3916, default 2611)://此时,fdisk又会让你选择该分区的开始值这个就是分区的Start 值(startcylinder);这里最好直接按回车,

Using default value 2611

Last cylinder, +cylinders or +size{K,M,G} (2611-3916, default3916): //此时,fdisk又会让你选择该分区的开始值这个就是分区的End 值这里最好直接按回车,

Using default value 3916

Command (m for help): w //w "保存所有并退出,分区划分完毕"

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16:Device or resource busy.

The kernel still uses the old table. The new table will be usedat

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

2.cp命令

语  法:cp [-abdfilpPrRsuvx][-S <备份字尾字符串>][-V <备份方式>][--help][--spares=<使用时机>][--version][源文件或目录][目标文件或目录] [目的目录] 

补充说明:cp指令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息。

参  数:

 -a或--archive  此参数的效果和同时指定"-dpR"参数相同。 

 -b或--backup  删除,覆盖目标文件之前的备份,备份文件会在字尾加上一个备份字符串。

 -d或--no-dereference  当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录。

 -f或--force  强行复制文件或目录,不论目标文件或目录是否已存在。 

 -i或--interactive  覆盖既有文件之前先询问用户。 

 -l或--link  对源文件建立硬连接,而非复制文件。

 -p或--preserve  保留源文件或目录的属性。 

 -P或--parents  保留源文件或目录的路径。

 -r  递归处理,将指定目录下的文件与子目录一并处理。

 -R或--recursive  递归处理,将指定目录下的所有文件与子目录一并处理。

 -s或--symbolic-link  对源文件建立符号连接,而非复制文件。

 -S<备份字尾字符串>或--suffix=<备份字尾字符串>  用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字尾字符串是符号"~"。

 -u或--update  使用这项参数后只会在源文件的更改时间较目标文件更新时或是 名称相互对应的目标文件并不存在,才复制文件。

 -v或--verbose  显示指令执行过程。

 -V<备份方式>或--version-control=<备份方式>  用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这字符串不仅可用"-S"参数变更,当使用"-V"参数指定不同备份方式时,也会产生不同字尾的备份字串。  

 -x或--one-file-system  复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不予复制。

 --help  在线帮助。 

 --sparse=<使用时机>  设置保存稀疏文件的时机。

 --version  显示版本信息。

3.Linux下的主设备号和次设备号

主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。

静态分配设备号,就是驱动程序开发者,静态地指定一个设备号。对于一部分常用的设备,内核开发者已经为其分配了设备号。这些设备号可以在内核源码documentation/devices.txt文件中找到。如果只有开发者自己使用这些设备驱动程序,那么其可以选择一个尚未使用的设备号。在不添加新硬件的时候,这种方式不会产生设备号冲突。但是当添加新硬件时,则很可能造成设备号冲突,影响设备的使用。

由于静态分配设备号存在冲突的问题,所以内核社区建议开发者使用动态分配设备号的方法。动态分配设备号的函数是alloc_chrdev_region()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值