ฉันจะทำให้ Linux รู้จักไดรฟ์ SATA / dev / sda ใหม่ที่ฉันสลับร้อนโดยไม่ต้องบูตเครื่องใหม่ได้อย่างไร


41

การสลับร้อนระหว่างไดรฟ์ SATA / dev / sda ที่ล้มเหลวทำงานได้ดี แต่เมื่อฉันไปแลกเปลี่ยนในไดรฟ์ใหม่มันไม่ได้รับการยอมรับ:

[root@fs-2 ~]# tail -18 /var/log/messages
May 5 16:54:35 fs-2 kernel: ata1: exception Emask 0x10 SAct 0x0 SErr 0x50000 action 0xe frozen
May 5 16:54:35 fs-2 kernel: ata1: SError: { PHYRdyChg CommWake }
May 5 16:54:40 fs-2 kernel: ata1: link is slow to respond, please be patient (ready=0)
May 5 16:54:45 fs-2 kernel: ata1: device not ready (errno=-16), forcing hardreset
May 5 16:54:45 fs-2 kernel: ata1: soft resetting link
May 5 16:54:50 fs-2 kernel: ata1: link is slow to respond, please be patient (ready=0)
May 5 16:54:55 fs-2 kernel: ata1: SRST failed (errno=-16)
May 5 16:54:55 fs-2 kernel: ata1: soft resetting link
May 5 16:55:00 fs-2 kernel: ata1: link is slow to respond, please be patient (ready=0)
May 5 16:55:05 fs-2 kernel: ata1: SRST failed (errno=-16)
May 5 16:55:05 fs-2 kernel: ata1: soft resetting link
May 5 16:55:10 fs-2 kernel: ata1: link is slow to respond, please be patient (ready=0)
May 5 16:55:40 fs-2 kernel: ata1: SRST failed (errno=-16)
May 5 16:55:40 fs-2 kernel: ata1: limiting SATA link speed to 1.5 Gbps
May 5 16:55:40 fs-2 kernel: ata1: soft resetting link
May 5 16:55:45 fs-2 kernel: ata1: SRST failed (errno=-16)
May 5 16:55:45 fs-2 kernel: ata1: reset failed, giving up
May 5 16:55:45 fs-2 kernel: ata1: EH complete

ฉันลองสองสามสิ่งเพื่อให้เซิร์ฟเวอร์ค้นหาใหม่ / dev / sda เช่นrescan-scsi-bus.shแต่พวกเขาไม่ทำงาน:

[root@fs-2 ~]# echo "---" > /sys/class/scsi_host/host0/scan
-bash: echo: write error: Invalid argument
[root@fs-2 ~]#
[root@fs-2 ~]# /root/rescan-scsi-bus.sh -l
[snip]
0 new device(s) found.
0 device(s) removed.
[root@fs-2 ~]#
[root@fs-2 ~]# ls /dev/sda
ls: /dev/sda: No such file or directory

ฉันสิ้นสุดการรีบูตเซิร์ฟเวอร์ / dev / sda ได้รับการยอมรับฉันแก้ไข RAID ซอฟต์แวร์และทุกอย่างเรียบร้อยดี แต่ในครั้งต่อไปฉันจะทำให้ Linux รู้จักไดรฟ์ SATA ใหม่ที่มีการสลับร้อนโดยไม่ต้องรีบูตเครื่องได้อย่างไร

ระบบปฏิบัติการที่เป็นปัญหาคือ RHEL5.3:

[root@fs-2 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.3 (Tikanga)

ฮาร์ดไดรฟ์คือ Seagate Barracuda ES.2 SATA 3.0-Gb / s 500-GB รุ่น ST3500320NS

นี่คือเอาต์พุต lscpi:

[root@fs-2 ~]# lspci
00:00.0 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a2)
00:01.0 ISA bridge: nVidia Corporation MCP55 LPC Bridge (rev a3)
00:01.1 SMBus: nVidia Corporation MCP55 SMBus (rev a3)
00:02.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1)
00:02.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2)
00:04.0 IDE interface: nVidia Corporation MCP55 IDE (rev a1)
00:05.0 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:05.1 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:05.2 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:06.0 PCI bridge: nVidia Corporation MCP55 PCI bridge (rev a2)
00:08.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a3)
00:09.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a3)
00:0a.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0b.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0c.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0d.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0e.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0f.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
00:19.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:19.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:19.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:19.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
03:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200e [Pilot] ServerEngines (SEP1) (rev 02)
04:00.0 PCI bridge: NEC Corporation uPD720400 PCI Express - PCI/PCI-X Bridge (rev 06)
04:00.1 PCI bridge: NEC Corporation uPD720400 PCI Express - PCI/PCI-X Bridge (rev 06)

อัปเดต : ในบางกรณีเราถูกบังคับให้รีบูตเซิร์ฟเวอร์เนื่องจาก hot swap ไม่ได้ "ใช้งานได้" ขอบคุณสำหรับคำตอบเพื่อดูเพิ่มเติมในคอนโทรลเลอร์ SATA ฉันได้รวมเอาท์พุท lspci สำหรับระบบที่มีปัญหาด้านบน (ชื่อโฮสต์: fs-2) ฉันยังสามารถใช้ความช่วยเหลือในการทำความเข้าใจสิ่งที่ไม่สนับสนุนฮาร์ดแวร์อย่างชาญฉลาดในแง่ของการแลกเปลี่ยนความร้อนสำหรับระบบนั้น โปรดแจ้งให้เราทราบว่าเอาต์พุตอื่นใดนอกเหนือจาก lspci อาจเป็นประโยชน์

ข่าวดีคือ hot swap "เพิ่งใช้งานได้" วันนี้ในเซิร์ฟเวอร์ของเรา (ชื่อโฮสต์: www-1) ซึ่งหายากมากสำหรับเรา นี่คือเอาต์พุต lspci:

[root@www-1 ~]# lspci
00:00.0 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a2)
00:01.0 ISA bridge: nVidia Corporation MCP55 LPC Bridge (rev a3)
00:01.1 SMBus: nVidia Corporation MCP55 SMBus (rev a3)
00:02.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1)
00:02.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2)
00:04.0 IDE interface: nVidia Corporation MCP55 IDE (rev a1)
00:05.0 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:05.1 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:05.2 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:06.0 PCI bridge: nVidia Corporation MCP55 PCI bridge (rev a2)
00:08.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a3)
00:09.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a3)
00:0b.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0c.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0f.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Link Control
00:19.0 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] HyperTransport Configuration
00:19.1 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Address Map
00:19.2 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] DRAM Controller
00:19.3 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Miscellaneous Control
00:19.4 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Link Control
03:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200e [Pilot] ServerEngines (SEP1) (rev 02)
04:00.0 PCI bridge: NEC Corporation uPD720400 PCI Express - PCI/PCI-X Bridge (rev 06)
04:00.1 PCI bridge: NEC Corporation uPD720400 PCI Express - PCI/PCI-X Bridge (rev 06)
09:00.0 SCSI storage controller: LSI Logic / Symbios Logic SAS1064ET PCI-Express Fusion-MPT SAS (rev 04)

ฉันจะตรวจสอบสถานะของคอนโทรลเลอร์ SATA ของคุณในเวอร์ชันของเคอร์เนล Linux ที่คุณใช้งานอยู่ มันอาจจะเป็นข้อผิดพลาดหรือธรรมดาไม่สนับสนุน
นาธาน

เป็น 0 หมายเลข BUS หรือ 1

3
มันเป็นบัส 0. / sys / class / scsi_host มี host0 ถึง host5 dmesg แสดง ata1 ถึง ata6 สอดคล้อง ata1 เพื่อ host0 สอดคล้อง ata2 เพื่อ host1 ฯลฯ
ฟิลิปเดอร์บิน

คำตอบ:


43

หากคอนโทรลเลอร์ SATA ของคุณรองรับการแลกเปลี่ยนความร้อนคุณควร "เพียงแค่ทำงาน (tm)"

หากต้องการบังคับให้สแกนซ้ำบน SCSI BUS (แต่ละพอร์ต SATA แสดงเป็น SCSI BUS) และค้นหาไดรฟ์ใหม่คุณจะใช้:

echo "0 0 0" >/sys/class/scsi_host/host<n>/scan

ด้านบน<n>คือหมายเลข BUS


ขออภัยไม่มีความสุข การเรียกใช้คำสั่งนั้นจะเรียกเฉพาะการสแกนซ้ำอัตโนมัติแบบเดียวกับที่ถูกเรียกเมื่อฉันเริ่มเสียบไดรฟ์ ขอบคุณ แต่!
hakamadare

อาจเป็นไปได้ที่การกำหนดค่าบางอย่างจะต้องทำบนตัวควบคุมการโจมตีเพื่อให้เห็นดิสก์ ในกรณีของฉันมันเป็นสิ่งที่จำเป็นในการเพิ่มดิสก์ใหม่กลับเข้าไปในการจู่โจม
MikeKulls

ฉันได้รับอนุญาตปฏิเสธแม้เมื่อใช้sudoและเมื่อเปลี่ยนเป็นผู้ใช้รูท
Aaron Franke

ในระบบของฉันที่บูทจาก NVMe SSD สิ่งนี้ทำงานเพื่อตรวจสอบ SATA HD ที่เพิ่งเสียบปลั๊กใหม่ ฉันใช้powertopเพื่อปล่อยพลังงานให้มากขึ้นดังนั้นบางทีพอร์ต SATA ที่ฉันเสียบเข้าไปในไดรฟ์ก็หลับสนิท (ระบบได้ออปติคัลไดรฟ์ SATA เชื่อมต่อและตรวจพบที่บูต แต่มันก็อาจจะนอนหลับเกินไป.) ในฐานะที่เป็นคนอื่น ๆ แนะนำเพื่อหลีกเลี่ยงการตั้งค่าการเชื่อมโยง SATA สำหรับไดรฟ์ที่ใช้งานคิดออกซึ่งเป็นhostรหัสที่มีอยู่แล้วในการใช้งานและไม่ได้scanเหล่านั้น มีเพียงอันเดียวที่คุณเสียบเข้ากับไดรฟ์ใหม่ (หรือคนใดคนหนึ่งที่ไม่ได้ใช้ถ้าคุณไม่ทราบหมายเลข.)
ปีเตอร์ Cordes

18
echo "- - -" >/sys/class/scsi_host/host<n>/scan
       ^ ^
        \_\_______ note spaces between the dashes.

5
ระวังด้วยสิ่งนี้: dmesg แสดงให้เห็นว่าฮาร์ดรีเซ็ตลิงค์ SATA ทั้งหมดของฉันแล้ว อาจคุ้มค่าการทดสอบก่อนที่จะเรียกใช้ในการผลิตและสูญเสียการเขียน
Ivan Kozik

12

เมื่อไดรฟ์ล้มเหลวในบางสถานการณ์ลีนุกซ์จะไม่ตระหนักว่าคุณได้ดึงมันออกมาจากอาร์เรย์จริง หากคุณมีปัญหานั้น (อย่างที่ฉันทำเมื่อเช้านี้) คุณสามารถทำสิ่งต่อไปนี้:

echo 1 > /sys/block/<devnode>/device/delete

เช่นในกรณีของฉัน / dev / sda ล้มเหลวและฉันไม่ต้องการรีบูตเซิร์ฟเวอร์ดังนั้นฉันจึง:

echo 1 > /sys/block/sda/device/delete

หลังจากที่ฉันทำเช่นนั้นไดรฟ์ใหม่ (ซึ่งเพิ่มทางกายภาพแล้ว) จะปรากฏขึ้นทันที

หากไม่ปรากฏให้เห็นในตอนนี้คุณสามารถทำเช่นนี้เพื่อบังคับให้สแกนซ้ำ:

echo "- – -" > /sys/class/scsi_host/host<n>/scan

นั่นคือ "- - -" เป็นไวด์การ์ดสำหรับช่องสัญญาณ id และ LUN ตามลำดับดังนั้นคุณสามารถ จำกัด การสแกนไว้ที่ชุดย่อยบางชุดหากคุณต้องการโดยระบุหมายเลขแทน

ก่อนที่คุณจะเริ่มคุณสามารถ:

readlink /sys/block/<devnode>

ซึ่งจะแสดงเส้นทางที่มีหมายเลขโฮสต์ที่ถูกต้องเพื่อตรวจสอบใน / proc / scsi / scsi สำหรับการหายไปหลังจากการลบ


7

วิธีการเกี่ยวกับเรื่องนี้ (ดูเหมือนว่าจะทำงานใน Ubuntu):

sudo partprobe


คุณอาจต้องติดตั้ง 'yum install parted'
Antonio

partedFTW ... ที่คุณควรรู้ได้เป็นอย่างดีนอกจากนี้ผู้ต้องสงสัยตามปกติเช่นfdisk, gdisk, ,cgdisk testdisk
sjas

6

ฉันไม่อยากเชื่อเลยว่าไม่มีใครพูดถึง AHCI เลย ... คอนโทรลเลอร์ SATA ของคุณต้องอยู่ในโหมด AHCI เพื่อเปิดใช้งาน hot swap ตรวจสอบสิ่งนี้โดยดูจากไดรเวอร์ที่คุณใช้:

root@peter:~ # find /sys -name sdk
/sys/devices/pci0000:00/0000:00:11.0/ata5/host4/target4:0:0/4:0:0:0/block    /sdk
/sys/block/sdk
/sys/class/block/sdk

root@peter:~ # readlink /sys/devices/pci0000:00/0000:00:11.0/driver
../../../bus/pci/drivers/ahci

root@peter:~ # lspci -k | less
[... big long output... search for ahci or your pci address, or use the awk below ...]

root@peter:~ # lspci -k | awk '$1 == "00:11.0" {x=1}; x && /in use/ {print $0; exit}'
    Kernel driver in use: ahci

ดูวิธีพูดว่า "ahci" ที่นั่น

หากไม่เป็นเช่นนั้นให้เปิดใช้งานใน BIOS ของคุณ นอกจากนี้ BIOS บางตัวโดยเฉพาะบนเซิร์ฟเวอร์หรือ UEFI มีการตั้งค่า "Hot Swap = enabled / disabled" ต่อดิสก์ซึ่งคุณควรเปิดใช้งานหากมีอยู่


1
คุณเป็นเพื่อนที่ดีที่สุดของฉันใหม่: D
allyourcode

2

นี่คือเหตุผลที่ฉันต้องรีบูตคอมพิวเตอร์ ...

ฉันเพิ่งเปลี่ยน / dev / sdc ของฉันร้อน ฉันใช้ scsiadd -r 3 0 0 เพื่อปิดดิสก์เก่าก่อนที่จะดึงออกมา จากนั้นหลังจากติดตั้งดิสก์ใหม่ดิสก์ใหม่จะไม่ปรากฏเป็น / dev / sdc แต่เป็น / dev / sdd หลังจากรีบูตดิสก์จะปรากฏเป็น / dev / sdc อีกครั้ง

ดังนั้นดูเหมือนว่า hotswap ใช้งานได้อาจเป็นได้ว่า / dev / sd * ไม่เหมือนเดิมอีกต่อไป

นี่อาจเป็นคำตอบสำหรับปัญหาของคุณ?


อืม, ดี, rescan-scsi-bus.sh ทำงานบน / proc / scsi / scsi แล้วเหมือน scsiadd ที่ดูเหมือนว่า เรากำลังลองผู้ให้บริการเซิร์ฟเวอร์รายอื่นอยู่แล้วดังนั้นอาจจะเป็น "การแลกเปลี่ยน" ที่น่าสนใจสำหรับเราได้
Philip Durbin

4
ใช่คุณไม่สามารถหลีกเลี่ยงสิ่งนั้นใกล้เคียงที่ฉันบอกได้ นี่คือเหตุผลที่คุณใช้ดิสก์เลเบลหรือ UUID และเมานท์ fs ของคุณด้วยตนเอง (หรือด้วยตนเองใน fstab) คุณสามารถตั้งค่าแล้วไม่เปลี่ยน เคล็ดลับเพียงอย่างเดียวคือการให้บูตโหลดเดอร์ของคุณติดตั้งไปยังไดรฟ์ใหม่ แต่ก็ยังทำงานได้เมื่อมันรีบูต แต่จากการทดลองอย่างรวดเร็วด้วย GRUB (ฉันได้เปลี่ยน sda บนเครื่องด้วย sd [a, b, c, d] และซอฟต์แวร์ raid1 สำหรับส่วนระบบทั้งหมดของ fs)
Ronald Pottol

1
คุณไม่ควรใช้อุปกรณ์ / dev / sd * ในไฟล์ปรับแต่งเช่น fstab คุณไม่ควรถือว่าชื่อเป็นชื่อเดิมเสมอ คุณควรใช้ไวยากรณ์ UUID = ... (โดยไม่ใส่เครื่องหมายอัญประกาศ) เช่นที่คุณเห็นใน man fstab หากต้องการค้นหา UUID ให้ใช้คำสั่ง blkid (หรือคุณสามารถเลือกที่จะใช้ป้ายกำกับหรือ id ดู / dev / disk / by- *)
Peter

1

My DVD ในเครื่อง Fedora 16 ของฉันเชื่อมต่อกับอินเตอร์เฟส SATA มันถูกล็อคและจะไม่เปิดหรือปิด การเรียกใช้partprobeในฐานะ root ทำให้ cdrom / DVD ของฉันทำงานอีกครั้ง ฉันคิดว่ามันจะช่วยให้เครื่อง anther ที่ฉันมีปัญหาการแลกเปลี่ยนเป็นครั้งคราว ขอบคุณ!


1

คอนโทรลเลอร์ Fusion-MPT SAS ที่คุณมีคือคอนโทรลเลอร์ RAID ระดับต่ำสุด หากคุณไม่ได้ใช้มันสำหรับ RAID อาจยังคงมีเลเยอร์ของการขัดขวาง / นามธรรมที่ไม่มีประโยชน์

คุณอาจต้องกระตุ้นที่คอนโทรลเลอร์ RAID ด้วยสถานะ mpt หรือ lsiutil เพื่อให้สแกนบัสได้จริง

http://hwraid.le-vert.net/wiki/LSIFusionMPTมีเอกสารจำนวนมาก แต่ฉันไม่สามารถพูดได้ว่าฉันตรวจสอบแล้ว


1

ในบางกรณีอาจจำเป็นต้องเปิดใช้งาน hot-swap บน BIOS ของเมนบอร์ดและ / หรือตัวควบคุม SATA สิ่งนี้ขึ้นอยู่กับยี่ห้อและรุ่นของทั้งสองอย่าง แต่ถ้าคุณมีคอนโทรลเลอร์ SATA แบบออนบอร์ดที่ควรรองรับ hotswap ก็คุ้มค่าที่จะใช้งานร่วมกับ BIOS เมนบอร์ด การ์ด SATA อาจมีหรือไม่มีการตั้งค่าไบออสของตัวเองการ์ดระดับล่างสุดไม่ได้ทำอะไร แต่โดยทั่วไปแล้วการ์ดระดับเซิร์ฟเวอร์จะทำ

ถ้าฉันจำได้ถูกต้องฉันต้องใช้มันกับเมนบอร์ด Gigabyte จำนวนหนึ่งและบางทีอาจจะมีบางอย่างที่ทำให้ ฉันต้องการมันเพื่อให้ถาด SATA hot-swap ทำงาน; เมื่อฟีเจอร์ปิดใช้งานการลบไดรฟ์ไม่ได้ทำให้เกิดปัญหา แต่ไดรฟ์ใหม่จะไม่ลงทะเบียนจนกว่าจะรีบูต การเปิดใช้งานการตั้งค่าทำงานตามที่คาดไว้ไดรฟ์ที่วางในถาดจะหมุนขึ้นมาทันทีและพร้อมใช้งานกับระบบปฏิบัติการ


เพิ่งตรวจสอบเครื่องจักรในบ้านที่ฉันรู้ว่ามีสิ่งนี้; มันใช้งานเมนบอร์ด Gigabyte Z77X-UD3H ที่มีออนบอร์ดมาร์เวล 88SE9172 และตัวควบคุม Intel 7 Series / C210
STW

1

ฉันรู้ว่าคำถามนี้เก่า แต่ฉันประสบความสำเร็จฉันไม่เห็นรายงานที่อื่น พบปัญหาที่คล้ายกันใน Dell Precision 380 วันนี้ ในที่สุดก็ทำให้มันทำงานโดยการทำต่อไปนี้:

echo "- - -" > /sys/class/scsi_host/host2/scan
echo 1 > /sys/class/scsi_device/2:0:0:0/device/reset
echo 1 > /sys/devices/pci0000:00/0000:00:1f.2/rescan
echo 1 > /sys/devices/pci0000:00/0000:00:1f.2/reset

คำเตือน:สิ่งนี้อาจรบกวนอุปกรณ์ ATA อื่น ๆ ในระบบเช่นกัน หากคุณได้ติดตั้งระบบไฟล์บนอุปกรณ์เหล่านั้นนั่นน่าจะจบอย่างไม่ดี สถานการณ์ของฉันไม่ได้สนใจ แต่คุณอาจจะ

คำสั่งข้างต้นใดที่ฉันต้องการและในลำดับใดไม่เป็นที่รู้จักสำหรับฉันในขณะนี้ บางคำสั่งอาจจำเป็นต้องทำซ้ำ ถ้าฉันต้องเดาฉันจะบอกว่าทำตามลำดับที่แสดงไว้ข้างต้นแล้ว scsi_host อีกสแกนในตอนท้าย ฉันทำสำรวจอีกไม่กี่ครั้ง

คำสั่งแรก (การสแกน scsi_host) บอกให้มิดเลเยอร์ SCSI ทำการสแกนบัสทั้งหมดสำหรับอุปกรณ์ใหม่ / ที่เปลี่ยนแปลง คำสั่งที่สองพยายามรีเซ็ตเป้าหมาย SCSI (อุปกรณ์ดิสก์) สองอันสุดท้ายทำงานร่วมกับไดรเวอร์สำหรับคอนโทรลเลอร์ AHCI

ฉันพบรายการที่เป็นปัญหาส่วนใหญ่โดยการตรวจสอบอย่างละเอียดและการทดลองที่เป็นตัวหนา

คุณสามารถจับคู่โหนด scsi_device กับยี่ห้อและรุ่นของอุปกรณ์ (โดยใช้ grep เพื่อพิมพ์ชื่อไฟล์ที่อยู่ด้านหน้าของเนื้อหา):

grep . /sys/class/scsi_device/*/device/model

ตัวเลขตัวแรกของ ID อุปกรณ์ SCSI ควรเป็นหมายเลข scsi_host จากนั้นคุณสามารถจับคู่โหนด scsi_host กับโหนดอุปกรณ์ของตนกับ:

ls -l /sys/class/scsi_host

ฉันสงสัยว่าฉันจะไม่ได้รับโอกาสในการปรับแต่งเพิ่มเติมดังนั้นฉันจึงต้องการแบ่งปันข้อมูลนี้เพื่อหวังให้คนอื่นเข้ามาใกล้ยิ่งขึ้น หากฉันได้รับข้อมูลเพิ่มเติมฉันจะแก้ไขคำตอบนี้เพื่อสะท้อน

หวังว่านี่จะช่วยได้


0

เพื่อให้ hotplug ทำงานคุณต้องโหลดโมดูล acpiphp

[root@example ~]# modprobe acpiphp

เห็นได้ชัดว่าถ้าคุณต้องการให้สิ่งนี้ทำงานในการบูตคุณจะต้องกำหนดค่าที่จะโหลดในเวลาบูต - วิธีหนึ่งคือการสร้าง / แก้ไข /etc/rc.modules (ซึ่งเรียกว่าโดย rc.sysinit) และเพิ่มบรรทัด:

modprobe acpiphp

จำไว้ว่าถ้าคุณสร้างไฟล์นี้เพื่อ chmod + x มันอย่างที่มันถูกเรียกในลักษณะนั้น


น่าสนใจ ฉันไม่เคยได้ยิน acpiphp ขอบคุณ ดูเหมือนว่าจะใช้สำหรับการกำหนดค่าขั้นสูงและ Power Interface PCI Hot Plug PCI คือ Peripheral Component Interconnect แน่นอน
Philip Durbin

2
acpiphp ใช้สำหรับ PCI hotplug เช่นการเพิ่มและการถอดการ์ด PCI ระบบราคาแพงบางระบบรองรับสิ่งนี้ และยังมีไฮเปอร์ไวเซอร์มากมาย
Derobert
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.