লিনাক্স কার্নেলকে কীভাবে বলতে পারি যে কোনও সংযোগ নেই এমনভাবে কোনও ডিস্কটিকে সম্পূর্ণ উপেক্ষা করার জন্য?


18

বিজ্ঞপ্তি

উত্তরের জন্য নীচে স্ক্রোল করুন (এটিতে কয়েকটি পয়েন্ট রয়েছে তবে এটি সঠিক একটি)। সমস্যাটি কোনও প্যাচ দ্বারা সমাধান করা হবে যা কার্নেল 3.12.7 এবং তার বেশি হবে; আমি আশা করি এটি পূর্বেরগুলিতেও ফিরে আসবে।

আমার ল্যাপটপটি একটি স্যামসুং ক্রোনোস সেরি 7. এর 7.. উবুন্টু জিনোম রিমিক্স ১৩.০৪, ইনটেল আপডেট হওয়া ড্রাইভার সহ।

অভ্যন্তরীণ এসএসডি ড্রাইভ (8 জি ক্ষমতা) নিয়ে আমার সমস্যা আছে। এটি COMRESET এবং ইনপুট / আউটপুট ত্রুটির সাথে ব্যর্থ হয়। আমি যথেষ্ট বিশ্বাস করি যে সমস্যাটি হার্ডওয়্যার; দুর্ভাগ্যক্রমে আমার কাছে উইন্ডোজটি এসএসডি কনফিগারেশনের বিষয় কিনা তা যাচাই করার জন্য ল্যাপটপে ইনস্টলড নেই।

সমস্যাটি হ'ল ডিস্কটি ওদেব দ্বারা স্বীকৃত:

KERNEL[9.515930] add      /devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb (block)
ACTION=add
DEVNAME=sdb
DEVPATH=/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb
DEVTYPE=disk
MAJOR=8
MINOR=16
SEQNUM=1785
SUBSYSTEM=block
UDEV_LOG=3

এবং তারপরে এটি প্রচুর চেকে ব্যর্থ হয়, বুট বিলম্ব করে, শাটডাউনটি বিলম্ব করে এবং (আমার মনে হয়) স্থগিত করা অসম্ভব।

লিনাক্সকে ata2 লিঙ্কে কোনও কিছুর সম্পূর্ণ উপেক্ষা করতে বলা সম্ভব? আমি এই লাইনটি /etc/udev/rules.d/10-local.rules এ যুক্ত করার চেষ্টা করেছি

SUBSYSTEMS=="pci"  DRIVERS=="ahci" KERNELS=="ata2" OPTIONS=="ignore_device"

কিন্তু এটি কাজ করে না।

অন্যদিকে, কেউ যদি উইন্ডোজ না ব্যবহার করে "ক্যাশে" মোডে রেখে যায় তবে কীভাবে এসএসডি পুনরায় সেট করতে হয় তা জানেন ... বা এটি করতে "লাইভ" উইন্ডোজ বুট করার জন্য ...

ধন্যবাদ!

ডেটা যুক্ত করা হয়েছে:

Http://paste.ubuntu.com/6186145/ এ সম্পূর্ণ udevadm info -a -n /dev/sdbআটকানো হয়েছে

smartctl -i /dev/sdb -T permissive দেয়:

root@samsung-romano:/home/romano# smartctl -i /dev/sdb -T permissive
smartctl 5.43 2012-06-30 r3573 [x86_64-linux-3.8.0-31-generic] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net

Vendor:               /1:0:0:0
Product:              
User Capacity:        600,332,565,813,390,450 bytes [600 PB]
Logical block size:   774843950 bytes
>> Terminate command early due to bad response to IEC mode page

যা স্পষ্টতই ভুল। তা সত্ত্বেও:

root@samsung-romano:/home/romano# fdisk -b 512 -C 970 -H 256 -S 63 /dev/sdb
fdisk: unable to read /dev/sdb: Input/output error

(থেকে এসএসডি তথ্য http://ubuntuforums.org/showthread.php?t=1935699&p=11739579#post11739579 )।

অতিরিক্ত চিন্তাভাবনা:

লিনাক্স ইনস্টল করার আগে ইন্টেল স্মার্ট রেসপন্স টেকনোলজির এই সমস্ত কি পার্শ্ব প্রতিক্রিয়া হ'ল? যদি হ্যাঁ, আমি কীভাবে মেশিনে উইন্ডোজ পুনরায় ইনস্টল করার সংক্ষেপে এটি পরীক্ষা করতে পারি? নাকি এই অন্ধকারে শট? (বায়োজে এসএসডি ড্রাইভটি দেখায় না এবং ইন্টেল এসআরটি সম্পর্কে কিছুই নেই)।

প্রতীক হিসাবে চিহ্নিত করা সম্পর্কে:

আমি প্রশ্নের শিরোনাম পরিবর্তন করেছি; আমি মনে করি না যে সংযুক্ত প্রশ্নটি আমার সমস্যার উত্তর দেয়। আমি ইতিবাচকভাবে জানি যে এসএসডি ব্যর্থ হচ্ছে। আমি জিজ্ঞাসা করছি লিনাক্স কার্নেলটিকে এটির কোনও তদন্ত না করার জন্য বলা সম্ভব কিনা।


2
আপনি যে ডিস্কটি আড়াল করতে চান তা যদি "এসডিবি" হয় তবে আপনি কি দয়া করে "উদেবডেম তথ্য -a -n / dev / sdb" এর সম্পূর্ণ আউটপুট পোস্ট করতে পারেন?
রোমান রাগুয়েট

1
এটি কোনও লিঙ্কযুক্ত প্রশ্নের কোনও সদৃশ নয়। আপনি দয়া করে এটি সদৃশ হিসাবে চিহ্নিত করতে পারেন? আমি প্রশ্নটি আরও ভাল করে জানাতে শিরোনামটি পরিবর্তন করেছি। কোনও এসএসডি চেক সম্পর্কে নয়, এটি লিনাক্সে ডিস্ক পরিচালনার একটি সাধারণ প্রশ্ন সম্পর্কে। ধন্যবাদ!
রোমানো

1
শুধু ... ডিস্ক প্লাগ লাগাতে সমস্যা কী?
ব্রায়াম


3
Braiam: এসএসডি ডিস্ক নেই ঝালান মেইন-বোর্ড রয়েছে।
রোমানো

উত্তর:


14

দুটি সমাধান এখানে: একটি প্রয়োগ করা দ্রুত, যদিও সমস্যাটি কেবল আংশিকভাবে সমাধান করে, অন্যটি সম্পূর্ণরূপে তবে আপনার নিজের কার্নেলটি সংকলন করতে হবে।

সঠিক উত্তরটি কার্নেল প্যাচ।

রবিন এইচ জনসন এসএটিএ কার্নেল ড্রাইভারের জন্য একটি প্যাচ লিখেছিলেন ( এটি ইউনিক্স / লিনাক্স স্ট্যাক এক্সচেঞ্জ সাইটে সন্ধান করুন ) যা পুরোপুরি ড্রাইভটি আড়াল করে।

আপডেট 1 প্যাচটি এখন প্রবাহিত হয়েছে (কমপক্ষে 3.12.7 স্থিতিশীল কার্নেলের মধ্যে), গিট সংগ্রহস্থলটি দেখুন । আমি উবুন্টু লঞ্চপ্যাডে ব্যাকপোর্টের জন্য জিজ্ঞাসা করেছি ।

আপডেট 2 প্যাচটি উবুন্টু ট্রাস্টি থার 14.04 এর জন্য স্ট্যান্ডার্ড কার্নেলের মধ্যে রয়েছে; সুতরাং এখন বুট প্যারামিটারের জন্য নিম্নলিখিত সংযোজনগুলির প্রয়োজন।

একবার প্যাচ ইনস্টল করা হয়, যোগ করুন

 libata.force=2.00:disable

কার্নেলের বুট পরামিতিগুলি লিনাক্স কার্নেল থেকে ডিস্কটি আড়াল করবে। নম্বরটি সঠিক কিনা তা দুবার পরীক্ষা করে দেখুন; ডিভাইসের নাম অনুসন্ধান করতে সহায়তা করতে পারে:

(0)samsung-romano:~% dmesg | grep iSSD
[    1.493279] ata2.00: ATA-8: SanDisk iSSD P4 8GB, SSD 9.14, max UDMA/133
[    1.494236] scsi 1:0:0:0: Direct-Access     ATA      SanDisk iSSD P4  SSD  PQ: 0 ANSI: 5

কার্নেল প্যারামিটার যুক্ত করতে (অস্থায়ীভাবে এবং স্থায়ীভাবে বট) আপনি এই প্রশ্নোত্তর পরীক্ষা করতে পারেন: আমি কীভাবে কার্নেল বুট প্যারামিটার যুক্ত করব?

কার্যসংক্রান্ত

কমপক্ষে সাসপেন্ড-পুনঃসূচনা সক্ষম করার সমস্যাটি ইউনিক্স স্ট্যাকএক্সচেঞ্জ ব্যবহারকারী ইমমানুয়েল /unix//a/103742/52205 এ সমাধান করেছেন । রুট হিসাবে, কমান্ডটি ইস্যু করুন:

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

স্থগিত করার আগে।

এটিকে স্থায়ী করতে, নিম্নলিখিত ফাইলটি এতে যুক্ত করুন /etc/pm/sleep.d/এবং এটি সম্পাদনযোগ্য করুন:

-rwxr-xr-x 1 root root 204 Dec  6 16:03 99_delete_sdb

সামগ্রী সহ:

#!/bin/sh

# Delete the failing disk so that it will not block suspend

case "$1" in
    suspend|hibernate)
        if [ -d /sys/block/sdb ]; then
            echo 1 > /sys/block/sdb/device/delete       
        fi
        ;;
esac

... এবং এখন সিস্টেমটি সঠিকভাবে স্থগিত করেছে (এবং পুনরায় শুরু করুন)।


1
মনে করিয়ে দেওয়ার জন্য আপনাকে ধন্যবাদ /sys/block/*/device/delete
মাইকেল শিগোরিন

@ কিকুটো --- আপনার প্রস্তাবিত সম্পাদনাটি কিছুটা অফ-টপিক মনে হয়েছে, তবে আমি কীভাবে কার্নেল বুট প্যারামিটার যুক্ত করব তার একটি লিঙ্ক যুক্ত করেছি। ধন্যবাদ.
রোমানো

5

আপনি নিম্নলিখিত তথ্য (udevadm তথ্য -a -n / dev / sdb এর আউটপুট) দিয়ে udev নিয়ম তৈরি করার চেষ্টা করতে পারেন

তথ্য:

looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0':
    KERNELS=="1:0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{rev}=="SSD "
    ATTRS{type}=="0"
    ATTRS{scsi_level}=="6"
    ATTRS{model}=="SanDisk iSSD P4 "
    ATTRS{state}=="running"
    ATTRS{queue_type}=="none"
    ATTRS{iodone_cnt}=="0x309"
    ATTRS{iorequest_cnt}=="0x30a"
    ATTRS{queue_ramp_up_period}=="120000"
    ATTRS{timeout}=="30"
    ATTRS{evt_media_change}=="0"
    ATTRS{ioerr_cnt}=="0x1d6"
    ATTRS{queue_depth}=="1"
    ATTRS{vendor}=="ATA     "
    ATTRS{device_blocked}=="0"
    ATTRS{iocounterbits}=="32"

1) udev নিয়ম তৈরি করুন।

  • sudo nano /etc/udev/rules.d/99-hide-ssd.rules

আপনি "SUBSYSTEMS" মিলানোর চেষ্টা করতে পারেন "সাবস্কিটিএমএস এবং "চালক" কী এবং "এটিটিআরএস {রেভ}" এবং এটিটিআরএস {মডেল} বৈশিষ্ট্যগুলি মিলিয়ে দেখার চেষ্টা করতে পারেন , তারপরে এটিকে উপেক্ষা করার জন্য "ইউডিস্কস" ভেরিয়েবল নির্ধারণ করুন ।

99-hide-ssd.rules ফাইলের সামগ্রীটি হ'ল:

SUBSYSTEMS == "scsi", DRIVERS == "sd", ATTRS {rev} == "SSD", ATTRS {মডেল} == "সানডিস্ক iSSD P4", ENV {UDISKS_IGNORE} = "1"

ন্যানোতে পরিবর্তনগুলি সংরক্ষণ করতে ... Ctrl + + Oতারপর, Enterএবং পরিশেষে Ctrl+ + X

2) অবশেষে ইউদেব বিধিগুলি রিফ্রেশ করুন:

  • sudo udevadm trigger

বিঃদ্রঃ: সঙ্গে ENV {UDISKS_IGNORE} = "1" এটা উবুন্টু 12.10 ও 13.04 ডিস্কের উপেক্ষা করা হবে।
উবুন্টু 12.04 এর জন্য চলকটি ENV {UDISKS_PRESENTATION_HIDE} = "1" হবে

আশাকরি এটা সাহায্য করবে.


এটি চেষ্টা করে দেখুন, তবুও বুটে এসডিবি সনাক্ত করা হয় (এবং এটি বিলম্ব করে)। আমার মনে হয় কিছু কার্নেল লাইন প্যারামিটার বিকল্প হওয়া উচিত, তবে আমি কিছুই খুঁজে পেলাম না ... দীর্ঘশ্বাস ফেললাম। যাই হোক ধন্যবাদ.
রোমানো

@ রুমানো ... আপনি যদি কেবল কার্নেল কীটি মেলে চেষ্টা করেন ?. এই নিয়মটি হবে কার্নেল == "এসডিবি", ENV {UDISKS_IGNORE} = "1" ... ইউডিতে ডিস্ক সনাক্ত হয়েছে কিনা তা দেখার জন্য।
রোমান রাগুয়েট

আমি জানি এটা অনেক আগে ছিল। তবে এই সমস্যাটি এখনও কোনও উত্তর ছাড়াই ... পরামর্শগুলির মধ্যে কোনওটিই কাজ করেনি। যাইহোক আপনাকে ধন্যবাদ।
রোমানো

2

/server/112147/tell-ubuntu-to-ignore-dead-hard-drive-during-b ुट করা অংশের পরামর্শ দেয়:

রুট হিসাবে, আপনার প্রিয় পাঠ্য সম্পাদকের সাথে /etc/udev/rules.d/60-pers depend-stores.rules খুলুন ।

কয়েক লাইন নিচে, আপনি সম্ভবত একটি লাইন দেখতে পাবেন যা দেখতে এইরকম দেখাচ্ছে:

অনুপযুক্ত ব্লক ডিভাইসগুলির জন্য নিয়মগুলি এড়িয়ে যান

কার্নেল == "রাম * | লুপ * | এফডি * | এনবিডি * | জিএনবিডি * | ডিএম- | এমডি ", জিওটিও = " স্থায়ী_ স্টোরেজ_অ্যান্ড " " দ্বিতীয় এসডিবি * " যুক্ত করুন, সুতরাং এটি দেখতে এরকম দেখাচ্ছে:

কার্নেল == "রাম * | লুপ * | এফডি * | এনবিডি * | জিএনবিডি * | ডিএম- | এমডি | এসডিবি *", গোটো = " স্থির_ স্টোরেজ_েন্ড "

সংরক্ষণ করুন, পুনরায় বুট করুন এবং সম্ভবত এটি কাজ করে। যদি না হয়, ভাল, এই পোস্ট ওয়ারেন্টি হয়?


চেষ্টা করেছেন, ভাগ্য নেই। এখনও এসডিবি ড্রাইভ আছে, এখনও স্থগিতকরণ অবরুদ্ধ করে। একসময় একটি এসডিবি = উপস্থিত ছিল কার্নেল কমান্ড লাইন বিকল্পটি উপেক্ষা করুন ... এবং দুর্ভাগ্যক্রমে হ্যাঁ, এটি পোস্ট-ওয়ারেন্টি।
রোমানো

বিটিডাব্লু, আমার কাছে সেই ফাইলটি ছিল না, তাই আমি এটি যুক্ত করেছি ...
রোমানো

2

যদি আপনার অন্যান্য ডিস্কগুলি আহকি ব্যবহার না করে বা এসএসডি না করে থাকে তবে আপনি তাদের জন্য কার্নেল ড্রাইভারটি সরিয়ে ফেলতে পারেন।

সেই সেশনের জন্য অপসারণ করতে (পরবর্তী রিবুট হওয়া পর্যন্ত), চালান:

sudo rmmod ahci

এটি পুনরায় লোড করতে, চালান:

sudo modprobe ahci

যদি আপনি দেখতে পান যে সবকিছু ঠিকঠাক চলছে, আপনি এখন এটি পুরোপুরি অক্ষম করতে পারবেন (এটি পরবর্তী বুটগুলি লোড করবেন না)। /etc/modprobe.d/blacklist.conf ফাইলটি খুলুন এবং নিম্নলিখিত লাইনটি যুক্ত করুন:

blacklist ahci 

কালোতালিকা এসএসডি ড্রাইভার, ঠিক প্রতিস্থাপন AHCI সঙ্গে এসডি


2
এটি আমাকে কোনও ডিস্ক ছাড়াই একটি সিস্টেম ছেড়ে দেবে ... মূল ড্রাইভ চালু আছে ata1, ব্যর্থ এসএসডি চালু ata2
বায়োজে আহকি

1

আমি যা জানি তার থেকে, আপনাকে এসএসডি অপসারণ ব্যতীত বার্তাটি সরিয়ে দেওয়ার কোনও উপায় নেই।


দুর্ভাগ্যক্রমে, এসএসডি হ'ল (যা আমি জানি তার জন্য) মূলবোর্ডে সোনার্ড করা। এটি মাত্র একটি 8 জি চিপ।
রোমানো

চিপের উপরের একটি নেতৃত্বকে কেটে দিন, পছন্দনীয় + 5 ভি লাইনটি খুঁজে বের করুন এবং এটি এক্স-অ্যাক্টো দিয়ে কাটবেন?
K7AAY

... যদি আমি কেবল জানতাম কোন চিপটি, এবং এটি কোথায়। তারপরে আমি আশঙ্কা করি যে এটি আরও বেশি সমস্যা তৈরি করতে পারে (অপ্রকৃত ত্রি-রাষ্ট্র ...)।
রোমানো

1

আমি গিয়েছিলাম এবং আপনার জন্য একটি কার্নেল প্যাচ লিখেছিলাম যা বুট করার সময় একক ডিস্ক নিষ্ক্রিয় করার দক্ষতা প্রয়োগ করে, যাতে আপনাকে এটি ইউদেভে অক্ষম করা বা প্রাথমিক বুটের সময় অপেক্ষায় বিরক্ত করার প্রয়োজন হয় না।

http://dev.gentoo.org/~robbat2/patches/3.13-libata-disable-disks-by-param.patch

খুব সহজেই অনেকগুলি কার্নেলগুলিতে প্রয়োগ করা উচিত (উপরে লাইনটি 2013-05-21 / v3.10-rc1 * যুক্ত করা হয়েছিল, তবে সেই লাইনটি ছাড়াই ম্যানুয়ালি প্রয়োগ করা যেতে পারে)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.