日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
解決linux讀取不到wwid的問(wèn)題(linux讀取不到wwid)

解決Linux讀取不到WWID的問(wèn)題

WWID(World Wide Identifier)是指磁盤(pán)在存儲(chǔ)設(shè)備中的唯一標(biāo)識(shí)符,用于確定磁盤(pán)在系統(tǒng)中的位置。在Linux中,WWID對(duì)于磁盤(pán)管理和故障排除非常重要。然而,有時(shí)候我們會(huì)遇到Linux無(wú)法讀取WWID的問(wèn)題,這通常是因?yàn)榕渲缅e(cuò)誤或設(shè)備驅(qū)動(dòng)問(wèn)題導(dǎo)致的。下面,我們將詳細(xì)介紹如何解決Linux無(wú)法讀取WWID的問(wèn)題。

一、檢查配置文件

我們需要檢查配置文件是否正確。只有在正確的配置文件中添加了 WWID,才能在Linux中正確識(shí)別和使用磁盤(pán)。在Linux中,通常使用multipath或udev來(lái)管理磁盤(pán),我們需要檢查它們的配置文件中是否正確添加了WWID。檢查方法如下:

1. 查找udev配置文件

# ls /etc/udev/rules.d/

其中udev的配置文件通常以“60-xxx.rules”的格式存在,我們需要查找其中有關(guān)WWID的配置文件。

2. 確認(rèn)WWID的配置

在找到有關(guān)WWID的配置文件后,我們需要確認(rèn)其中是否已正確配置 WWID。WWID在文件中通常以以下形式出現(xiàn):

ENV{ID_SERIAL}==”xxxxx”, ENV{ID_SERIAL_SHORT}==”xxxxx”, SYMLINK+=”id/xxxxx”

其中,xxxxx是WWID的值,確保它與您要找的磁盤(pán)的WWID值一致。如果配置正確,則此配置文件應(yīng)包含您正在查找的磁盤(pán)的WWID。

3. 重啟udev守護(hù)程序

在確認(rèn)配置文件后,我們需要重啟udev守護(hù)程序,使配置文件生效。重啟方法如下:

# systemctl restart systemd-udevd

4. 檢查WWID是否可以識(shí)別

檢查磁盤(pán)是否可以識(shí)別WWID,方法如下:

# ls -l /dev/disk/by-id/

如果磁盤(pán)可以識(shí)別WWID,則會(huì)在結(jié)果中列出WWID。

二、升級(jí)設(shè)備驅(qū)動(dòng)

如果我們無(wú)法在配置文件中解決問(wèn)題,那么可能是設(shè)備驅(qū)動(dòng)問(wèn)題。有時(shí),某些設(shè)備驅(qū)動(dòng)程序可能無(wú)法解析WWID,導(dǎo)致Linux無(wú)法識(shí)別磁盤(pán)。為了解決此問(wèn)題,我們需要升級(jí)設(shè)備驅(qū)動(dòng)程序。

1. 檢查設(shè)備驅(qū)動(dòng)版本

我們需要檢查當(dāng)前設(shè)備驅(qū)動(dòng)程序的版本。方法如下:

# rpm -qa | grep kmod

這將顯示當(dāng)前已安裝的設(shè)備驅(qū)動(dòng)程序的名稱和版本號(hào)。請(qǐng)務(wù)必記下當(dāng)前版本號(hào),以備將來(lái)參考。

2. 下載更新的設(shè)備驅(qū)動(dòng)

在確定當(dāng)前設(shè)備驅(qū)動(dòng)程序版本后,我們需要下載更新的設(shè)備驅(qū)動(dòng)程序。由于不同設(shè)備廠商的驅(qū)動(dòng)程序有所不同,我們需要查找并下載適用于您的設(shè)備的最新驅(qū)動(dòng)程序。下載方法與常規(guī)軟件包相同。

3. 安裝更新的設(shè)備驅(qū)動(dòng)

安裝更新的設(shè)備驅(qū)動(dòng)程序,方法如下:

# rpm -Uvh

安裝新驅(qū)動(dòng)程序后,我們需要重啟系統(tǒng)以使新驅(qū)動(dòng)程序生效。

# reboot

重啟后,請(qǐng)確認(rèn)是否能夠正確識(shí)別磁盤(pán)的WWID。

三、更新內(nèi)核

在某些情況下,更新內(nèi)核可解決無(wú)法讀取WWID的問(wèn)題。更新內(nèi)核會(huì)更新設(shè)備驅(qū)動(dòng)程序和相關(guān)系統(tǒng)組件,可能會(huì)解決無(wú)法識(shí)別WWID的問(wèn)題。

1. 確認(rèn)當(dāng)前內(nèi)核版本

在更新內(nèi)核之前,我們需要查詢當(dāng)前Linux系統(tǒng)使用的內(nèi)核版本。方法如下:

# uname -a

這將顯示當(dāng)前正在使用的內(nèi)核版本信息。

2. 下載新內(nèi)核

在確認(rèn)當(dāng)前內(nèi)核版本后,我們需要下載新內(nèi)核。新內(nèi)核可從Linux官方網(wǎng)站下載。

3. 安裝新內(nèi)核

安裝新內(nèi)核方式有多種。對(duì)于rpm包管理的Linux,可以使用以下命令安裝:

# rpm -Uvh

安裝后,我們需要重新啟動(dòng)系統(tǒng)以使新內(nèi)核生效。

# reboot

重啟后,請(qǐng)檢查是否能夠正確識(shí)別磁盤(pán)的WWID。

結(jié)論

相關(guān)問(wèn)題拓展閱讀:

  • linux怎么讀取SD卡CID?
  • 怎么讓Uboot中設(shè)置的IP能夠在Linux啟動(dòng)后讀到
  • linux雙擊運(yùn)行找不到環(huán)境變量

linux怎么讀取SD卡CID?

使用以叢指bai下命du令:

cat /sys/devices/platform/jz-msc.0/mmc_host/mmc0/mmc0:1234/cid

或者滲歲配使用雀塵zhi通配符dao

cat /sys/devices/platform/jz-msc.0/mmc_host/mmc0/mmc0:*/cid

要在Linux系統(tǒng)上讀取SD卡CID,可以使用以下命令:

首先,使型亂汪用以下命令查看SD卡設(shè)備名稱:

sudo fdisk -l

這將列出所有已連接的設(shè)備,包括SD卡。請(qǐng)注意SD卡的設(shè)備名稱,例如/陪旅dev/sdc。

然后,使用以下命令讀取SD卡CID:

sudo cat /sys/class/mmc_host/mmcX/mmcX:0001/cid

其中,mmcX是SD卡的設(shè)備名稱,例如/dev/sdc,X是數(shù)字。這將輸出SD卡的CID信息。

請(qǐng)注意,讀取SD卡CID需要使用root權(quán)限。如果沒(méi)有root權(quán)限,請(qǐng)?jiān)诿钋凹由蟬udo。此外,不是所有SD卡都支持CID讀取,因此可能無(wú)法讀取某些SD卡的CID信卜仔息。

怎么讓Uboot中設(shè)置的IP能夠在Linux啟動(dòng)后讀到

U-boot會(huì)給LinuxKernel傳遞很多參數(shù),如:串手態(tài)口,RAM,videofb等。而Linuxkernel也會(huì)讀取和處理這些參數(shù)。兩者之間通過(guò)structtag來(lái)傳遞參數(shù)。U-boot把要傳遞給kernel的東西保存在structtag數(shù)據(jù)結(jié)構(gòu)中,啟動(dòng)kernel時(shí),把這個(gè)結(jié)構(gòu)體的物理地址傳給kernel;Linuxkernel通過(guò)這個(gè)地址,用parse_tags分析出傳遞過(guò)來(lái)的參數(shù)。本文主要以U-boot傳遞RAM和Linuxkernel讀取RAM參數(shù)為例進(jìn)行說(shuō)明。1、u-boot給kernel傳RAM參數(shù)./common/cmd_bootm.c文件中(叢攔指Uboot的根目錄),bootm命令對(duì)應(yīng)的do_bootm函數(shù),當(dāng)分析uImage中信息發(fā)現(xiàn)OS是Linux時(shí),調(diào)用./lib_arm/bootm.c文件中的do_bootm_linux函數(shù)來(lái)啟動(dòng)Linuxkernel。在do_bootm_linux函數(shù)中:voiddo_bootm_linux(cmd_tbl_t*cmdtp,intflag,intargc,char*argv,\ulongaddr,ulong*len_ptr,intverify){#ifdefined(CONFIG_SETUP_MEMORY_TAGS)||\defined(CONFIG_CMDLINE_TAG)||\defined(CONFIG_INITRD_TAG)||\defined(CONFIG_SERIAL_TAG)||\defined(CONFIG_REVISION_TAG)||\defined(CONFIG_LCD)||\defined(CONFIG_VFD)setup_start_tag(bd);//初始化tag結(jié)構(gòu)體開(kāi)始#ifdefCONFIG_SERIAL_TAGsetup_serial_tag(?ms);#endif#ifdefCONFIG_REVISION_TAGsetup_revision_tag(?ms);#endif#ifdefCONFIG_SETUP_MEMORY_TAGSsetup_memory_tags(bd);//設(shè)置RAM參數(shù)#endif#ifdefCONFIG_CMDLINE_TAGsetup_commandline_tag(bd,commandline);#endif#ifdefCONFIG_INITRD_TAGif(initrd_start&&initrd_end)setup_initrd_tag(bd,initrd_start,initrd_end);#endif#ifdefined(CONFIG_VFD)||defined(CONFIG_LCD)setup_videolfb_tag((gd_t*)gd);#endifsetup_end_tag(bd);//初始化tag結(jié)構(gòu)體結(jié)束#endiftheKernel(0,machid,bd->bi_boot_params);//傳給Kernel的參數(shù)=(structtag*)型的bd->bi_boot_params//bd->bi_boot_params在board_init函數(shù)中初始化,如對(duì)于at91rm9200,初始化在at91rm9200dk.c的board_init中進(jìn)行:bd->bi_boot_params=PHYS_SDRAM+0x100;//這個(gè)地址也是所有taglist的首地址,見(jiàn)下面的setup_start_tag函數(shù)}對(duì)于setup_start_tag和setup_memory_tags函數(shù)說(shuō)明如下。函數(shù)setup_start_tag也在此文件中定義,如下:staticvoidsetup_start_tag(bd_t*bd){params=(structtag*)bd->bi_boot_params;//初始化(structtag*)型的全局變量畢鄭源params為bd->bi_boot_params的地址,之后的setuptags相關(guān)函數(shù)如下面的setup_memory_tags就把其它tag的數(shù)據(jù)放在此地址的偏移地址上。params->hdr.tag=ATAG_CORE;params->hdr.size=tag_size(tag_core);params->u.core.flags=0;params->u.core.pagesize=0;params->u.core.rootdev=0;params=tag_next(params);}RAM相關(guān)參數(shù)在bootm.c中的函數(shù)setup_memory_tags中初始化:staticvoidsetup_memory_tags(bd_t*bd){inti;for(i=0;ihdr.tag=ATAG_MEM;params->hdr.size=tag_size(tag_mem32);params->u.mem.start=bd->bi_dram.start;params->u.mem.size=bd->bi_dram.size;params=tag_next(params);}//初始化內(nèi)存相關(guān)tag}2、Kernel讀取U-boot傳遞的相關(guān)參數(shù)對(duì)于LinuxKernel,ARM平臺(tái)啟動(dòng)時(shí),先執(zhí)行arch/arm/kernel/head.S,此文件會(huì)調(diào)用arch/arm/kernel/head-common.S和arch/arm/mm/proc-arm920.S中的函數(shù),并最后調(diào)用start_kernel:bstart_kernelinit/main.c中的start_kernel函數(shù)中會(huì)調(diào)用setup_arch函數(shù)來(lái)處理各種平臺(tái)相關(guān)的動(dòng)作,包括了u-boot傳遞過(guò)來(lái)參數(shù)的分析和保存:start_kernel(){setup_arch(&command_line);}其中,setup_arch函數(shù)在arch/arm/kernel/setup.c文件中實(shí)現(xiàn),如下:void__initsetup_arch(char**cmdline_p){structtag*tags=(structtag*)&init_tags;structmachine_desc*mdesc;char*from=default_command_line;setup_processor();mdesc=setup_machine(machine_arch_type);machine_name=mdesc->name;if(mdesc->soft_reboot)reboot_setup(“s”);if(__atags_pointer)//指向各種tag起始位置的指針,定義如下://unsignedint__atags_pointer__initdata;//此指針指向__initdata段,各種tag的信息保存在這個(gè)段中。tags=phys_to_virt(__atags_pointer);elseif(mdesc->boot_params)tags=phys_to_virt(mdesc->boot_params);if(tags->hdr.tag!=ATAG_CORE)convert_to_tag_list(tags);if(tags->hdr.tag!=ATAG_CORE)tags=(structtag*)&init_tags;if(mdesc->fixup)mdesc->fixup(mdesc,tags,&from,&meminfo);if(tags->hdr.tag==ATAG_CORE){if(meminfo.nr_banks!=0)squash_mem_tags(tags);save_atags(tags);parse_tags(tags);//處理各種tags,其中包括了RAM參數(shù)的處理。//這個(gè)函數(shù)處理如下tags:__tagtable(ATAG_MEM,parse_tag_mem32);__tagtable(ATAG_VIDEOTEXT,parse_tag_videotext);__tagtable(ATAG_RAMDISK,parse_tag_ramdisk);__tagtable(ATAG_SERIAL,parse_tag_serialnr);__tagtable(ATAG_REVISION,parse_tag_revision);__tagtable(ATAG_CMDLINE,parse_tag_cmdline);}init_mm.start_code=(unsignedlong)&_text;init_mm.end_code=(unsignedlong)&_etext;init_mm.end_data=(unsignedlong)&_edata;init_mm.brk=(unsignedlong)&_end;memcpy(boot_command_line,from,COMMAND_LINE_SIZE);boot_command_line=’\0′;parse_cmdline(cmdline_p,from);//處理編譯內(nèi)核時(shí)指定的cmdline或u-boot傳遞的cmdlinepaging_init(&meminfo,mdesc);request_standard_resources(&meminfo,mdesc);#ifdefCONFIG_Pp_init_cpus();#endifcpu_init();init_arch_irq=mdesc->init_irq;system_timer=mdesc->timer;init_machine=mdesc->init_machine;#ifdefCONFIG_VT#ifdefined(CONFIG_VGA_CONSOLE)conswitchp=&vga_con;#elifdefined(CONFIG_DUMMY_CONSOLE)conswitchp=&dummy_con;#endif#endifearly_trap_init();}對(duì)于處理RAM的tag,調(diào)用了parse_tag_mem32函數(shù):staticint__initparse_tag_mem32(conststructtag*tag){arm_add_memory(tag->u.mem.start,tag->u.mem.size);}__tagtable(ATAG_MEM,parse_tag_mem32);上述的arm_add_memory函數(shù)定義如下:staticvoid__initarm_add_memory(unsignedlongstart,unsignedlongsize){structmembank*bank;size-=start&~PAGE_MASK;bank=&meminfo.bank;bank->start=PAGE_ALIGN(start);bank->size=size&PAGE_MASK;bank->node=PHYS_TO_NID(start);}如上可見(jiàn),parse_tag_mem32函數(shù)調(diào)用arm_add_memory函數(shù)把RAM的start和size等參數(shù)保存到了meminfo結(jié)構(gòu)的meminfo結(jié)構(gòu)體中。最后,在setup_arch中執(zhí)行下面語(yǔ)句:paging_init(&meminfo,mdesc);對(duì)沒(méi)有MMU的平臺(tái)上調(diào)用arch/arm/mm/nommu.c中的paging_init,否則調(diào)用arch/arm/mm/mmu.c中的paging_init函數(shù)。這里暫不分析mmu.c中的paging_init函數(shù)。3、關(guān)于U-boot中的bd和gdU-boot中有一個(gè)用來(lái)保存很多有用信息的全局結(jié)構(gòu)體--gd_t(globaldata縮寫(xiě)),其中包括了bd變量,可以說(shuō)gd_t結(jié)構(gòu)體包括了u-boot中所有重要全局變量。最后傳遞給內(nèi)核的參數(shù),都是從gd和bd中來(lái)的,如上述的setup_memory_tags函數(shù)的作用就是用bd中的值來(lái)初始化RAM相應(yīng)的tag。對(duì)于ARM平臺(tái)這個(gè)結(jié)構(gòu)體的定義大致如下:include/a-arm/global_data.htypedefstructglobal_data{bd_t*bd;unsignedlongflags;unsignedlongbaudrate;unsignedlonghave_console;/*serial_init()wascalled*/unsignedlongreloc_off;/*RelocationOffset*/unsignedlongenv_addr;/*AddressofEnvironmentstruct*/unsignedlongenv_valid;/*ChecksumofEnvironmentvalid?*/unsignedlongfb_base;/*baseaddressofframebuffer*/void**jt;/*jumptable*/}gd_t;在U-boot中使用gd結(jié)構(gòu)之前要用先用宏DECLARE_GLOBAL_DATA_PTR來(lái)聲明。這個(gè)宏的定義如下:include/a-arm/global_data.h#defineDECLARE_GLOBAL_DATA_PTRregistervolatilegd_t*gda(“r8”)從這個(gè)宏的定義可以看出,gd是一個(gè)保存在ARM的r8寄存器中的gd_t結(jié)構(gòu)體的指針。說(shuō)明:本文的版本為U-boot-1.3.4、Linux-2.6.28,平臺(tái)是ARM。

linux雙擊運(yùn)行找不到環(huán)境變量

如果晌困改雙擊運(yùn)行Linux程序,但是找不到環(huán)境變量,可能是因?yàn)槌邤…h(huán)境變量沒(méi)有正確配置導(dǎo)致的。你可以通過(guò)修改用戶設(shè)置文件~/.profile,宴判將PATH變量指向正確的程序文件夾,來(lái)解決這個(gè)問(wèn)題。

在Linux中,雙擊一個(gè)文件并不能運(yùn)行,除非該文件可以被系統(tǒng)正確識(shí)別,即該文件需要有一定的可執(zhí)行權(quán)限。首先,檢查可執(zhí)行文件的權(quán)限,可以弊肢使用“l(fā)s -l ”命令查看文件權(quán)限,如果文件沒(méi)有可執(zhí)行權(quán)限,可以用“chmod +x ”命租乎世令給予文件可執(zhí)行權(quán)限。此外,可能是由于環(huán)境變量沒(méi)有設(shè)置導(dǎo)致的,在運(yùn)行程序之頃啟前要先根據(jù)程序的路徑,設(shè)置環(huán)境變量,如export PATH=$PATH:/user/program/bin

如果你雙擊運(yùn)行Linux程序找不到環(huán)液做敬境變量,那么可能是環(huán)境變量設(shè)置有問(wèn)題??梢試L試使用終端命令查看環(huán)境變量,并嘗試重新設(shè)置胡培環(huán)境變量,以便正確運(yùn)行鬧慎Linux程序。

linux 讀取不到wwid的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux 讀取不到wwid,解決linux讀取不到wwid的問(wèn)題,linux怎么讀取SD卡CID?,怎么讓Uboot中設(shè)置的IP能夠在Linux啟動(dòng)后讀到,linux雙擊運(yùn)行找不到環(huán)境變量的信息別忘了在本站進(jìn)行查找喔。

創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。


當(dāng)前題目:解決linux讀取不到wwid的問(wèn)題(linux讀取不到wwid)
文章URL:http://www.dlmjj.cn/article/cccjeds.html