×

linux查看硬盘序列号命令

linux查看硬盘序列号命令(linux系统下,C++编程获得硬盘及主板序列号执行的时候不要加sudo)

admin admin 发表于2024-06-26 08:56:19 浏览14 评论0

抢沙发发表评论

大家好,linux查看硬盘序列号命令相信很多的网友都不是很明白,包括linux系统下,C++编程获得硬盘及主板序列号执行的时候不要加sudo也是一样,不过没有关系,接下来就来为大家分享关于linux查看硬盘序列号命令和linux系统下,C++编程获得硬盘及主板序列号执行的时候不要加sudo的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

linux系统下,C++编程获得硬盘及主板序列号执行的时候不要加sudo

既然是sudo才能执行该命令,说明这些命令是只有root用户才能执行的。因此,执行代码要加到root用户下,即:属主改为root 属性为755, 所有用户都要执行权限

基于KVM的虚拟机磁盘序列号如何读取

如何在 KVM 虚拟机上运行 KVM 上次讨论了如何在 VMware ESXi 虚拟机上运行 KVM 问题,前不久有读者想 “在 kvm 上面创建个虚拟机安装 rackspace 的 openstack” 问到 “如何开启虚拟机上的 CPU VT 功能以便在 KVM 上运行 KVM”,又是一个嵌套应用虚拟机的问题:在 KVM 虚拟机上运行 KVM 虚拟机。以下步骤在 Ubuntu Server 12.04 LTS 64 bit 上测试通过。首先检查 KVM host(母机)上是否打开了嵌套虚拟机功能(默认是开启的): # modinfo kvm_intel | grep nested parm: nested:bool # cat /sys/module/kvm_intel/parameters/nested Y 如果上面的显示结果不是 Y 的话需要开启 nested: # modprobe -r kvm-intel # modprobe kvm-intel nested=1 # cat /sys/module/kvm_intel/parameters/nested Y 然后在 KVM guest(虚拟机)的 xml 配置文件中加入 vmx 选项,并启动虚拟机(这里用的是 Ubuntu 官方发布的 Ubuntu KVM 镜像 ubuntu-12.04-server-cloudimg-amd64-disk1.img): # vi nestedvm.xml ... core2duo ... # virsh create nestedvm.xml 启动虚拟机后登陆并安装 KVM,执行 kvm-ok 和 modinfo 均出现错误: # apt-get install ubuntu-virt-server # kvm-ok INFO: /dev/kvm does not exist HINT: sudo modprobe kvm_intel INFO: Your CPU supports KVM extensions KVM acceleration can be used # modinfo kvm_intel ERROR: modinfo: could not find module kvm_intel 这是因为我们使用的是 ubuntu-12.04-server-cloudimg-amd64-disk1.img 这个官方虚拟机镜像,这个镜像使用的是 linux 3.2.0-23-virtual 内核,缺少 KVM 模块(kvm-intel.ko),所以我们需要改为 generic 内核: # uname -a Linux test 3.2.0-23-virtual #36-Ubuntu SMP Tue Apr 10 22:29:03 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux # apt-get install linux-generic 重启后进入虚拟机执行 kvm-ok 和 modinfo 均成功: # kvm-ok INFO: /dev/kvm exists KVM acceleration can be used # modinfo kvm_intel filename: /lib/modules/3.2.0-30-generic/kernel/arch/x86/kvm/kvm-intel.ko license: GPL author: Qumranet srcversion: 3BAF54F96ECD4B02292CAA0 depends: kvm intree: Y vermagic: 3.2.0-30-generic SMP mod_unload modversions parm: vpid:bool parm: flexpriority:bool parm: ept:bool parm: unrestricted_guest:bool parm: emulate_invalid_guest_state:bool parm: vmm_exclusive:bool parm: yield_on_hlt:bool parm: fasteoi:bool parm: nested:bool parm: ple_gap:int parm: ple_window:int 现在应该可以在这个虚拟机上创建另一个虚拟机了

LINUX 硬盘序列号

可能是你没有读取那个文件的权限,所以会导致open失败.通常对于这种系统文件都要求有root权限,看看你是否有权限吧.

linux下怎样查看硬盘序列号

root@localhost:~# fdisk -lWARNING: GPT (GUID Partition Table) detected on ’/dev/sda’! The util fdisk doesn’t support GPT. Use GNU Parted.Disk /dev/sda: 2000.4 GB, 2000398934016 bytes255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000 Device Boot Start End Blocks Id System/dev/sda1 1 3907029167 1953514583+ ee GPTroot@localhost:~# hdparm -i /dev/sda1/dev/sda1: Model=WDC WD2003FYYS-02W0B1, FwRev=01.01D02, SerialNo=WD-WMAY04598673 Config={ HardSect NotMFM HdSw》15uSec SpinMotCtl Fixed DTR》5Mbs FmtGapReq } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50 BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=3907029168 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 AdvancedPM=yes: unknown setting WriteCache=enabled Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7 * signifies the current active mode

linux系统硬盘序列号指令

一、Linux查看硬盘序列号的命令是:

hdparm -i /dev/sda,若该用户没有执行该命令的权限,可以加sudo 提升权限。-i参数用于显示驱动器的基本信息。/dev/sda为要查看的硬盘。可以使用fdisk -l命令查看硬盘名。hdparm参数说明:-a《快取分区》    设定读取文件时,预先存入块区的分区数,若不加上《快取分区》选项,则显示目前的设定。-A《0或1》    启动或关闭读取文件时的快取功能。-c《I/O模式》    设定IDE32位I/O模式。-C    检测IDE硬盘的电源管理模式。-d《0或1》    设定磁盘的DMA模式。-f    将内存缓冲区的数据写入硬盘,并清楚缓冲区。-g    显示硬盘的磁轨,磁头,磁区等参数。-h    显示帮助。-i    显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。-I    直接读取硬盘所提供的硬件规格信息。-k《0或1》    重设硬盘时,保留-dmu参数的设定。-K《0或1》    重设硬盘时,保留-APSWXZ参数的设定。-m《磁区数》    设定硬盘多重分区存取的分区数。-n《0或1》    忽略硬盘写入时所发生的错误。-p《PIO模式》    设定硬盘的PIO模式。-P《磁区数》    设定硬盘内部快取的分区数。-q    在执行后续的参数时,不在屏幕上显示任何信息。-r《0或1》    设定硬盘的读写模式。-S《时间》    设定硬盘进入省电模式前的等待时间。-t    评估硬盘的读取效率(不经过磁盘cache)。-T    平估硬盘快取的读取效率。-u《0或1》    在硬盘存取时,允许其他中断要求同时执行。-v    显示硬盘的相关设定。-W《0或1》    设定硬盘的写入快取。-X《传输模式》    设定硬盘的传输模式。-y    使IDE硬盘进入省电模式。-Y    使IDE硬盘进入睡眠模式。-Z    关闭某些Seagate硬盘的自动省电功能。二、linux下怎样查看硬盘型号和硬盘序列号hdparm-i/dev/hda这个命令更多的参数

-a 获取/设置硬盘每个簇的大小,默认值是8(即每个簇大小为4kb)。

-a 禁用/开启ide驱动器的 read-lookahead(不懂) 特性(默认是打开的)。

-b 获取/设置 bus state(不懂)。

-b 设置高级电源管理特性(apm),如果驱动器支持。一个较小的值意味着更省电?一个较大的值意味着更好的性能,将它设置为255将在指定驱动器上关闭apm。

-c 查询/开启 (e)ide 32位 i/o 支持。加上一个数值可以开启或关闭它。一般设置为0,即禁用32位数据传输,为1则开启32位数据传输,为3则开启32位数据传输和一个特别传输序列,但会消耗一些系统资源。

-c 检查当前ide电源模式,可以使用-s/-y/-y/-z等参数控制ide电源模式。

-d 禁用/开启dma。这个参加目前只能在并行ide和pci界面上,适当使用-x和-d1参数是个好主意,打开dma可以获得最好的磁盘性能和降低cpu占用率。

-d 禁用/开启坏扇区管理特性。

-e 设置光驱速度,这不是必需的,因为光驱会自动调速,但是你如果想用它,可以设置一个数值,通常设置为2或4。

-f 为设备退出时同步和填满缓冲区,这个参数也会做-t和-t所做的事。

-g 显示驱动器几何值(柱面,磁头,扇区)和开始扇区。

-h 简要显示此命令的帮助信息。

-i 显示驱动器的基本信息。

-i 显示驱动器的详细信息。

-k 获取/设置“在重启后保持设置”,使用这个参数将使驱动器在软重启后保持-dmu选项(后面还有一大堆,不懂)

-k 获取/设置“在重启后保持设置”,使用这个参数将使驱动器在软重启后保持-apswxz选项,不是所有驱动器都支持这样做。 

-l 锁住驱动器?(不懂)

-m 获取/设置在驱动器上为多扇区i/o计算扇区,开启这个参数将减少cpu开支30-50%,在大多数系统上它也能增加数据生产量?5-50%,使用这个参数会使某些型号的驱动器(如wd鱼子酱系列)减慢速度,大多数驱动器支持的最小数值可以是2,4,8,或16,更大也可以,视情况而定,大多数系统设置为16或32比较理想,wd的硬盘推荐设置为4到8,用-i参数可以看到当前硬盘的设置,某些驱动器要求支持复合模式,但在某些设置下会丢失数据。

-m 获取/设置自动噪音管理。很多驱动器支持使用磁盘降速的方法降噪,这个数值可以设置为从0至254,设置为128最为静音(速度最低),设置为254速度最快(噪音最大),某些驱动器自己规定两个级别(静音/快速),虽然你使用128至254之间的数值。

-n 获取或设置“忽略写错误”,最好不要使用在...(不懂)

-p 尝试重新调整ide界面芯片指定的pio模式,或自动设置为驱动器支持的最佳pio模式,这个特性在内核中仅支持少数芯片,某些ide芯片在单驱动器时不允许调整pio模式,大多数ide芯片或多或少地支持0到5的pio模式。

-p 为驱动器的内部预读装置设置最大扇区,不是所有的驱动器都支持。

-q (不懂)。在使用-i 或-v或-t或-t时无效。

-q 设置标记队列深度(1或更大),或关闭标记队列深度。这只能在2.5.xx或更新的内核中使用,目前还只有很少的驱动器支持它。

-r 获取/设置设备为只读模式,设置之后设备将不能允许写入。

-r 注册一个ide界面,危险。要获得更多信息,看一下-u选项。

-s 设置驱动器等待超时,这个参数决定硬盘在多久未响应之后关闭主轴电机以省电,这个数值设置为0则关闭这个功能,设置为1至240时,时间将为5秒的倍数,即5秒至20分钟,设置为241至251时,时间将为30分钟的1-11倍,即30分钟到5.5小时,设置为252象征着21分钟,253为?(不懂),255即为21分15秒。

-t 测试读缓存的速度。

-t 也是测速度的。

-u 获取/设置???(不懂,晕)

-u 注销一个ide界面,危险!

-v 显示使用-i未显示出的所有设置。

-w 执行设备重启(危险),一般不要用这个参数。

-w 禁用/开启ide驱动器的写缓冲特性,默认设置为设备制造商指定的值。

-x (看不懂,危险)。

-x 为较新的(e)ide/ata驱动器设置ide传输模式,与-d1参数一起使用,使用-x mdma2将开启多字dma模式2传输,使用-x sdma1将开启单字dma模式1传输,使用-x udma2将开启ultradma模式传输(需要芯片组支持)。现在很多ide设备在启动时就已经自动调整到最佳的pio模式,要使用此参数应该调整好-p参数,严重警告!这个数据是pio模式值+8,即设置为09代表传输模式为pio模式1,10即pio模式2,11即pio模式3,设置为00则恢复默认pio模式,01代表禁用iordy(什么是iordy啊,晕),要开启mdma,这个数值是mdma模式值+32,要开启udma,这个数值是udma模式值+64,即66为udma2(ata33),68为udma4(ata66),69为udma5(ata100,那么70应该是udma6即ata133了?我猜测的)

-y 使ide驱动器立即进入低耗电等待模式,用-c参数可以检查当前的耗电模式。

-y 使ide驱动器立即进入低耗电睡眠模式,用-c参数可以检查当前的耗电模式。

-z 让内核重新读取指定设备上的分区表。

-z 禁用segate驱动器的自动省电功能(st3xxx型号),防止它们在一定时间后闲置。

linux 用C++获取硬盘序列号,需要读/dev/sda系统文件,可是需要root权限啊,如果没有权限就读取失败了

chmod a+x vmware.install.pl./vmware-install.pl -d 加一个-d即可,会自动安装。

linux下怎么用c获取硬盘物理序列号

1、在Linux系统中通过C语言获取硬盘序列号,可以借助于ioctl()函数,该函数原型如下:

int ioctl(int fd, unsigned long request, ...);

ioctl的第一个参数是文件标识符,用open()函数打开设备时获取。ioctl第二个参数为用于获得指定文件描述符的标志号,获取硬盘序列号,一般指明为HDIO_GET_IDENTITY。ioctl的第三个参数为一些辅助参数,要获取硬盘序列号,需要借助于struct hd_driveid结构体来保存硬盘信息 ,该结构体在Linux/hdreg.h中,struct hd_driveid的声明如下

struct hd_driveid {unsigned short    config;        / lots of obsolete bit flags */unsigned short    cyls;        /* Obsolete, "physical" cyls */unsigned short    reserved2;    /* reserved (word 2) */unsigned short    heads;        /* Obsolete, "physical" heads */unsigned short    track_bytes;    /* unformatted bytes per track */unsigned short    sector_bytes;    /* unformatted bytes per sector */unsigned short    sectors;    /* Obsolete, "physical" sectors per track */unsigned short    vendor0;    /* vendor unique */unsigned short    vendor1;    /* vendor unique */unsigned short    vendor2;    /* Retired vendor unique */unsigned char    serial_no;    /* 0 = not_specified */unsigned short    buf_type;    /* Retired */unsigned short    buf_size;    /* Retired, 512 byte increments* 0 = not_specified*/……};

2、源代码如下

#include 《stdio.h》//ioctl()的声明头文件#include 《sys/ioctl.h》//硬盘参数头文件, hd_driveid结构声明头文件#include 《linux/hdreg.h》//文件控制头文件#include 《sys/fcntl.h》int main(){   //用于保存系统返回的硬盘数据信息   struct hd_driveid id;   //这里以第一块硬盘为例,用户可自行修改   //用open函数打开获取文件标识符,类似于windows下的句柄   int fd = open("/dev/sda", O_RDONLY|O_NONBLOCK);   //失败返回    if (fd 《 0) {     perror("/dev/sda");     return 1; }    //调用ioctl()    if(!ioctl(fd, HDIO_GET_IDENTITY, &id))     {       printf("Serial Number=%s\n",id.serial_no);     }    return 0;}

编译完成后,执行效果如下:

国产电脑linux系统如何查看硬盘序列号

你可以通过如下方式来进行查看:hdparm命令# hdparm -I /dev/sda

通过这个命令可以详细查看。温馨提示:hdparm的-i参数是在引导驱动器时获得的识别信息,这个信息有时候不完整也不一定准确,这时候一般使用-I(大写的i)参数。hdparm -I /dev/sda,这样可以直接从驱动器获取识别信息, 并以原始的,未经过修改和更正的形式显示。希望能帮到你。

关于本次linux查看硬盘序列号命令和linux系统下,C++编程获得硬盘及主板序列号执行的时候不要加sudo的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。