برنامه نویسی

رفع وضعیت هوشمند ناشناخته برای SSD/HDD خارجی در ProxMox

نمای کلی

اگر از SSD/Harddisk خارجی استفاده می کنید و ProxMox نمی تواند وضعیت هوشمند را تشخیص دهد ، این پست قدرت به شما کمک کنید

در یک وبلاگ قبلی ، من نحوه استفاده را نشان دادم smartctl ابزار با SSD/Harddisks خارجی. مشکل در پست قبلی وبلاگ این بود که smartctl به طور خودکار کنترلر SSD خارجی من را تشخیص نمی داد و دستور Smart Query ناموفق بود. رفع مشکل بسیار آسان است. شما باید تراشه کنترلر را تشخیص داده و بگویید smartctl با -d پرچم برای اطلاعات بیشتر ، می توانید به پست وبلاگ قبلی بروید.

بعد از


TDLR:

مشکل پیش فرض بود که نمی تواند نوع دستگاه را تشخیص دهد:

$ smartctl -i /dev/sdb

/dev/sdb: Unknown USB bridge [0x0bda:0x0bda (0x2001)]
Please specify device type with the -d option.
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

با مشخص کردن نوع دستگاه صحیح ثابت شده است:

$ smartctl -i -d sntrealtek /dev/sdb

=== START OF INFORMATION SECTION ===
Model Number:                       KBG50ZNV256G KIOXIA
...
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


اگر نمی توانید مقادیر هوشمند SSD خود را با دستور پیش فرض پرس و جو کنید ، ProxMox نیز نمی تواند. در این وبلاگ ، ما را می بندیم smartctl بنابراین ProxMox هنگام پرس و جو از وضعیت هوشمند SSD خارجی من مشکلی نخواهد داشت.

  • ابتدا به سرور میزبان ProxMox وارد شوید.
    • من استفاده می کنم root حساب مستقیم
    • اگر از شما استفاده نمی کنید root، لطفا اضافه کنید sudo به آغاز دستورات زیر.
    • توجه داشته باشید که شما نیاز دارید sudo امتیاز برای این راه حل.
  • یک اسکریپت Bash را در جایی از سرور خود ایجاد کنید.
vim ~/smartctl.external
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • اسکریپت زیر را در پرونده کپی و جایگذاری کنید.
    • آنچه در اصل این اسکریپت انجام می دهد اضافه کردن است -d sntrealtek اگر دستگاه پرس و جو باشد پرچم /dev/sdbبشر این هیچ کاری به دستگاه های دیگر یا پرچم انجام نمی دهد.
    • ⚠ لطفا تغییر دهید /dev/sdb وت -d sntrealtek با توجه به نیازهای شما
#!/usr/bin/env bash

SMARTCTL=/usr/sbin/smartctl.orig
OPTIONS=("$@")

for((i=1; i<$#; ++i)); do
    # Check for /dev/sdb and add the Realtek option
    if [[ "${OPTIONS[i]}" == "/dev/sdb" ]]; then
        realtek_option="-d sntrealtek"
        # Add the "-d sntrealtek" option to the list of options
        OPTIONS=($realtek_option "${OPTIONS[@]}")
    fi
done

exec $SMARTCTL "${OPTIONS[@]}"
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • اکنون نام اصلی را تغییر نام دهید smartctl ابزار
sudo cp /usr/sbin/smartctl /usr/sbin/smartctl.orig
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • اسکریپت بسته بندی را با نسخه اصلی جایگزین کنید smartctl
sudo cp ~/smartctl.external /usr/sbin/smartctl
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • مجوزهای اسکریپت بسته بندی را تنظیم کنید.
chmod 755 /usr/sbin/smartctl
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • (اختیاری) ویژگی اسکریپت بسته بندی را تغییر دهید تا با به روزرسانی یا به اشتباه تغییر یابد.
chattr +i /usr/sbin/smartctl
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • اکنون اطمینان حاصل کنید که دستور پیش فرض مقادیر هوشمند را برمی گرداند:
$ smartctl -i /dev/sdb

=== START OF INFORMATION SECTION ===
Model Number:                       KBG50ZNV256G KIOXIA
...
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • بازگشت به proxmox و بر روی reload در صفحه دیسک ها برای بارگیری مجدد مقادیر هوشمند.
  • در UNKNOWN وضعیت باید باشد PASSED اکنون
    ثابت
  • همچنین می توانید جزئیات هوشمندانه کامل را مشاهده کنید.
    جزئیات هوشمندانه کامل

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا