จะนำไดรฟ์ภายนอกของฉันออกได้อย่างไรเมื่อ Mac ปฏิเสธเพราะ Spotlight


40

ฉันเสียบดิสก์ภายนอกเข้ากับ Mac แล้ว ตอนนี้ฉันต้องการที่จะเปิดมัน แต่ Mac ของฉันปฏิเสธอย่างดื้อรั้นและบอกว่าแอปพลิเคชันอาจใช้ดิสก์

ฉันยังไม่ได้เปิดแอพใด ๆ ไม่ได้เปิดไฟล์ใด ๆ จากดิสก์

ฉันได้ดาวน์โหลดและติดตั้งแอพ  What Keeping Me? แอพนี้ค่อนข้างดี เธอบอกฉันว่ากระบวนการ  mdsกำลังใช้ดิสก์ของฉัน

ฉันได้ฆ่ากระบวนการmdsและกระบวนการ  หลายอย่าง  mdworkerแล้ว สิ่งเหล่านี้มีไว้สำหรับสปอตไลท์ แต่กระบวนการดังกล่าวกลับกลายเป็นอีกครั้ง

ฉันจะเอาแผ่นของฉันจากดิสก์ของฉัน Mac?

ฉันมี Mac OS X 10.6.8


แค่รอให้กระบวนการเสร็จสิ้นหรือไม่ ฉันพบว่ามันใช้งานได้จริงสำหรับฉัน
Chogg

คำตอบ:


27

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

sudo mdutil -Ei off "/Volumes/Name_of_Drive"

คุณต้องเรียกใช้ขั้นตอนนี้ในฐานะผู้ดูแลระบบ ป้อนรหัสผ่านของคุณเมื่อได้รับแจ้ง อาจจำเป็นต้องบูตเครื่องใหม่

หรือตามคำแนะนำของ Simon White เพียงปิดเครื่องแล้วถอดไดรฟ์ ข้อแม้คือว่าไดรฟ์จะเริ่มสร้างดัชนีเมื่อเชื่อมต่ออีกครั้งอย่างไรก็ตาม


4
เพียงแค่หยุดกระบวนการก็พอ sudo mdutil -i off "/Volumes/Name_of_Drive"( -Eลบและสร้างดัชนีใหม่) ควรเริ่มการสแกนอีกครั้งในครั้งต่อไปที่คุณติดตั้งไดรฟ์ หากต้องการปิดใช้งานการสแกนไดรฟ์นั้นอย่างถาวรให้ใช้-d( sudo mdutil -d "/Volumes/Name_of_Drive") ดูอาร์กิวเมนต์ทั้งหมดเหล่านี้และอื่น ๆ โดยพิมพ์mdutilลงในบรรทัดคำสั่งของคุณ
Dannid

2
ชอบคำแนะนำ แต่โปรดอย่าแนะนำให้ออกหลังจากคำสั่ง ... ฉันไม่ได้สังเกตและสูญเสียประวัติของผลลัพธ์ที่ฉันมี
ravemir

@njboot - ไม่ได้คำสั่ง "ประวัติ" เพิ่งให้ประวัติของคำสั่งที่ป้อนเข้ามาฉันไม่ได้ให้ผลลัพธ์กลับมา
Nicolas Barbulesco

1
หลังจากออกคำสั่ง mdutil ฉันยังไม่สามารถนำดิสก์ออกได้ ดังนั้นฉันจึงออก "sudo killall mds" และนั่นทำให้มันทำงานได้
โทมัส Tempelmann

21

คุณอาจลองยกเลิกการต่อเชื่อมจากบรรทัดคำสั่ง:

diskutil unmount /Volumes/MountPoint

หรือด้วยแรง:

diskutil unmount force /Volumes/MountPoint

หากยังคงล้มเหลวให้ตรวจสอบสิ่งที่ใช้ดิสก์ของคุณ:

sudo fs_usage -w -f filesys | grep Volumes

หรือใช้lsof:

sudo lsof | grep Volumes

(กระบวนการบางอย่างจะเปิดขึ้นก็ต่อเมื่อมีการเรียกใช้ lsof ในฐานะผู้ดูแลระบบ)


หากต้องการปิดใช้งาน Spotlight ชั่วคราวให้เรียกใช้:

sudo mdutil -a -i off

จากนั้นsudo mdutil -a -i onให้เปิดใช้งานอีกครั้ง


ปพลิเคชันอื่น ๆ ซึ่งจะเป็นประโยชน์: อะไรทำให้ฉัน


2
ฉันเพิ่งพบว่า Spotlight (mds, mds_store, mdworker) จะไม่ปรากฏเมื่อฉันเรียกใช้lsofในฐานะผู้ใช้ อย่างไรก็ตามsudo lsof | grep Volumesทำงานได้ดี ("Whats Keeping Me" มีช่องทำเครื่องหมาย "ในฐานะผู้ดูแลระบบ" ตามลำดับ)
hans_meine

5

บ่อยครั้งที่ฉันพบว่ามันเป็น mds ที่ทำให้ฉันไม่ต้อง unmount ไดรฟ์ข้อมูล

sudo killall mds

จากนั้น (อย่างรวดเร็ว) ลองนำไดรฟ์ข้อมูลออกมาอีกครั้ง

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


น่าสนใจ บางที "เร็ว" อาจเป็นกุญแจสำคัญ!
Nicolas Barbulesco

ขอบคุณ! นี่เป็นคำตอบเดียวที่เหมาะกับฉันนอกเหนือจากการกดปุ่มบังคับซึ่งฉันไม่อยากทำ
addison

2

เพื่อป้องกันไม่ให้ Spotlight จัดทำดัชนีไดรฟ์ให้สร้างไฟล์ธรรมดาใน TextEdit โดยไม่มีเนื้อหาเพียงแค่ชื่อเรื่องของ. metadata_never_index และบันทึกไปยังภายนอก ยกเลิกการเลือกใช้ส่วนขยาย "txt" ... และบอก TextEdit ว่าใช่คุณต้องการบันทึกด้วยจุดที่ด้านหน้า (ซึ่งจะทำให้มองไม่เห็น)

ฉันไม่แน่ใจว่าจะหยุดในขณะนี้ แต่จะป้องกันในอนาคต

อีกวิธีหนึ่งคือทำให้ Applescript นี้เป็นแอปเพื่อบังคับให้ดีดออก [กับคำเตือนปกติที่บังคับให้ดีด ... ] ... เครดิตไปยังบล็อกของ MacTipper

    property show_credits : true

set the_volumes to do shell script "ls /Volumes/"
tell application "Finder" to set the_HD to path to home folder as string

set ejectable_volumes to {}
repeat with i in (every paragraph of the_volumes)
    if the_HD does not start with i then
        set end of ejectable_volumes to (i as string)
    end if
end repeat
if (count of items of ejectable_volumes) is 0 then
    tell me to activate
    display dialog "Sorry, but there are no ejectable volumes."
else if (count of items of ejectable_volumes) is 1 then
    tell me to activate
    set the_result to item 1 of ejectable_volumes as string
    display dialog ("Eject \"" & the_result & "\"?") buttons {"No", "Yes"} default button 2 cancel button "No"
    set the_path to quoted form of ("/Volumes/" & the_result as string)
    do shell script "hdiutil eject -force " & the_path
else
    tell me to activate
    set the_result to choose from list ejectable_volumes with prompt "Please choose a volume to eject (You can select multiple items):" with multiple selections allowed
    if the_result is not false then
        repeat with j in the_result
            set the_path to quoted form of ("/Volumes/" & j as string)
            do shell script "hdiutil eject -force " & the_path
        end repeat
    end if
end if

if show_credits is true then
    tell me to activate
    set the_credits to button returned of (display dialog "This applescript brought to you by The MacTipper Blog.\n\nhttp://mactipper.com" buttons {"Don't Show Again", "Visit TMB", "OK"} default button 3) as string
    if the_credits is "Don't Show Again" then
        set show_credits to false
    else if the_credits is "Visit TMB" then
        open location "http://mactipper.com"
    end if
end if

ขอขอบคุณ. แต่ ... "เพื่อบังคับให้กด [กับคำเตือนปกติที่บังคับให้ดีดออก ... ]" นี่เป็นเรื่องน่ากังวล หากฉันตกลงยอมรับความเสี่ยงที่จะทำให้ดิสก์เสียหายฉันก็จะถอดปลั๊กออก
Nicolas Barbulesco

จากนั้นตั้งค่าสถานะไม่มีสปอตไลต์และรอเพื่อให้เห็น & หยุดการทำดัชนี
Tetsujin

หรือคุณสามารถเรียกใช้sudo diskutil unmountDisk force /Volumes/Name_of_Volumeจาก Terminal เพื่อบังคับให้ทำเช่นนั้น สคริปต์นั้นไม่จำเป็น
njboot

@NicolasBarbulesco สิ่งเหล่านี้ไม่เหมือนกัน การบังคับให้ unmounting วอลุ่มนั้นไม่เหมือนกับการดึงปลั๊ก ในกรณีหลังคุณกำลังดึงพลังงานออกจากอุปกรณ์ในทันทีโดยที่ภาพหนึ่งอาจทำให้เกิดความเสียหายต่อดิสก์แม่เหล็กที่หมุนด้วยความเร็วรอบหลาย K รอบต่อนาที ในอดีตคุณเพียงแค่บังคับให้อุปกรณ์ยกเลิกการเมานท์เสียง จากนั้นดิสก์หมุนอย่างถูกต้องและคุณดึงปลั๊กตามปกติ มันปลอดภัยกว่ามาก
njboot

@njboot - ฉันไม่ได้ลองใช้diskutilคำสั่งของคุณ แต่ฉันได้ลองเทียบเท่ากับ Disk Utility - เพื่อประโยชน์
Nicolas Barbulesco

2

คุณสามารถลองบังคับให้ออกจาก Finder ซึ่งทำงานได้ดีสำหรับฉัน ตัวค้นหาถูกแขวนอยู่บนไดรฟ์ USB ดังนั้นการออกแรงและการเปิดตัวใหม่จะออกมาไม่ว่าอะไรจะเกิดขึ้น


เราจะทำอย่างนั้นได้อย่างไร? บังคับให้ออกจากตัวค้นหาหรือไม่
Ruskes

ตัวเลือก + คำสั่ง + ESC!
sdive

แต่สิ่งนี้สามารถทำงานได้ในกรณี Spotlight ของคำถามของฉัน
Nicolas Barbulesco

1

หากคุณไม่สามารถยกเลิกการเชื่อมต่อไดรฟ์ไม่ว่าด้วยเหตุผลใดคุณสามารถปิดเครื่องคอมพิวเตอร์ได้โดยง่าย เมื่อคอมพิวเตอร์ปิดอยู่คุณสามารถถอดไดรฟ์ออกได้อย่างปลอดภัย จากนั้นเริ่มคอมพิวเตอร์ สิ่งนี้จะไม่เพียง แต่ช่วยให้คุณถอดปลั๊กไดรฟ์ได้อย่างปลอดภัย แต่จะช่วยให้มั่นใจได้ว่ากระบวนการ mds จะรีสตาร์ทในกรณีที่หยุดทำงานจริง

หากคุณตัดสินใจว่าคุณไม่ต้องการใช้ Spotlight กับไดรฟ์นั้นสิ่งที่คุณต้องทำเพื่อหยุดไม่ให้ทำดัชนีคือเพิ่มไดรฟ์ไปยังแท็บ Privacy ของบานหน้าต่าง Spotlight ของ System Preferences สปอตไลท์จะไม่สนใจไดรฟ์

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


1
แน่นอนฉันสามารถปิดเครื่อง Mac ได้ แต่นี่ไม่ใช่ตัวเลือก
Nicolas Barbulesco

ฉันชอบความคิดที่จะให้ Spotlight รู้จักดิสก์ของฉัน แต่ฉันพยายามทำให้ Spotlight ไม่สนใจดิสก์ของฉันในขณะนี้ โดยใช้ System Prefs → Spotlight สิ่งนี้ไม่ทำงาน: "เป็นไปไม่ได้เนื่องจากข้อผิดพลาดที่ไม่รู้จัก" ข้อความแสดงข้อผิดพลาดยอดเยี่ยม! Apple ต้องจ้างผู้โยกย้ายจาก Micro $ oft! ฉันยังลองปล่อยให้เวลาทำ ฉันไปทำงานและปล่อยให้ Spotlight ทำดัชนีดิสก์ตลอดทั้งวัน ตอนเย็นฉันกลับมาและปัญหาก็ยังคงเหมือนเดิม
Nicolas Barbulesco

ฉันคิดว่าปัญหาคือmdsว่าไม่ได้บอกระบบว่ามันเสร็จสิ้นด้วยไดรฟ์หรือไม่เลิกหลังจากทำเสร็จแล้วโดยให้ถือไดรฟ์ไว้จนกว่ากระบวนการจะถูกฆ่าตายอย่างใด (เช่นการปิดระบบ) หากฉันเห็นการmdsไม่ใช้ CPU ในขณะที่อ้างว่าใช้ไดรฟ์ฉันบังคับให้นำไดรฟ์ออก
bauerMusic

@bauerMusic - คุณจะ "บังคับให้นำไดรฟ์ออก" ได้อย่างไร
Nicolas Barbulesco

@NicolasBarbulesco 'Force eject drive' เป็นตัวเลือกที่ระบบเสนอหลังจากผ่านไประยะหนึ่ง หากคุณพยายามที่จะดีดออกมาก็ควรจะพูดว่า 'พยายามดีดไดรฟ์ของคุณ' (หรือคล้ายกัน) และหลังจากผ่านไปหนึ่งนาที (ไม่สำเร็จ) ให้แสดงป๊อปอัพอื่นที่มีตัวเลือกบังคับให้ดีด
bauerMusic

1

อีกตัวเลือกง่าย ๆ คือการนำดิสก์ออกผ่านยูทิลิตี้


คุณอ่านความคิดเห็นในคำตอบของ Tetsujin หรือยัง? Disk Utility ไม่มีตัวเลือก "บังคับ"
klanomath

แค่ลองดู. การเปิดดิสก์อย่างง่ายผ่าน Disk Utilities จะใช้งานได้สำหรับฉันเสมอเมื่อไดรฟ์ภายนอกชนิดใด ๆ จะไม่ดีดออกเพราะเป็น "การใช้งาน"
Tim Undheim

ฉันพยายามที่จะนำไดรฟ์ออกด้วย Disk Utility แต่สิ่งนี้ไม่ได้ผล
Nicolas Barbulesco

1
เสียใจที่ได้ยินเรื่องนี้ Disk Utility ดึงดิสก์ "ที่ใช้งานอยู่" ที่ไม่มีการต่อเชื่อมออกได้ดีในหน่วยของฉันซึ่งทำงานบน 10.7.5 คุณอาจมองเข้าไปใน DiskWarrior
Tim Undheim

1
ไม่ว่าด้วยเหตุผลใดก็ตามการใช้คำสั่ง unmount ของ Disk Utility ทำให้ฉันมีปัญหาในดิสก์
MiB

0

คุณสามารถบอกได้ว่า Spotlight ไม่ควรทำดัชนีไดรฟ์นั้นและคุณไม่ต้องกังวลกับมัน

ในการตั้งค่าระบบ 10.11 จะมีรายการสำหรับ 'Spotlight' ซึ่งมีแท็บชื่อ 'ความเป็นส่วนตัว' คลิก '+' เลือกไดรฟ์ของคุณและคุณทำเสร็จแล้ว เพียงปิดการตั้งค่าระบบรอสองสามวินาทีเพื่อให้ระบบสังเกตการอัพเดทและคุณควรจะดีดออกได้ ตอนนี้มันจะไม่เริ่มทำดัชนีดิสก์ในครั้งต่อไปที่คุณเชื่อมต่อดังนั้นคุณจะไม่มีปัญหาอีกในอนาคต


ฉันลองมัน ที่ใช้งานไม่ได้ ดูความคิดเห็นของฉันที่นี่: apple.stackexchange.com/questions/142459/…
Nicolas Barbulesco
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.