কীভাবে কোনও ফাইলে BIOS ডেটা ফেলা যায়


24

আমি আমার ল্যাপটপের BIOS ডেটা কোনও ফাইলে ফেলে দিতে চাই। আমি একমাত্র সমাধানটি পেয়েছি নিম্নলিখিত আদেশটি:

dd if=/dev/mem bs=X skip=Y count=1

Xএবং Yবিভিন্ন লোকের প্রস্তাবিত সমাধানগুলিতে পৃথক কারণ বিভিন্ন বিআইওএস প্রকার রয়েছে।

BIOS ডেটার সঠিক ঠিকানা খুঁজে পাওয়ার কোনও উপায় আছে /dev/mem? আমি dmidecodeমেমরিতে BIOS এর ঠিকানা সীমাটি খুঁজতে ব্যবহার করতে পারি ? এবং লিনাক্স কি সমস্ত BIOS ডেটা র‌্যামে ফেলে দেয় বা এর একটি বিশেষ অংশ?

লিনাক্স যদি বিআইওএস ডেটা র‌্যামে ফেলে দিতে পারে তবে রুট ব্যবহারকারীরাও সরাসরি বিআইওএস অ্যাক্সেস করতে পারবেন?

উত্তর:


20

আপনি ব্যবহার করার চেষ্টা করতে পারেন biosdecode

এটি একটি কমান্ড লাইন ইউটিলিটি যা বিআইওএস মেমোরিটিকে বিশ্লেষণ করে এবং সমস্ত স্ট্রাকচার (বা এন্ট্রি পয়েন্ট) এর দ্বারা জেনে রাখা সম্পর্কিত তথ্য মুদ্রণ করে। এটি হার্ডওয়্যার সম্পর্কিত তথ্য সন্ধান করে যেমন:

  • আইপিএমআই ডিভাইস
  • স্মৃতি এবং গতির প্রকার
  • চ্যাসিস তথ্য
  • তাপমাত্রা অনুসন্ধান
  • কুলিং ডিভাইস
  • বৈদ্যুতিক বর্তমান তদন্ত
  • প্রসেসর এবং স্মৃতি তথ্য
  • ক্রমিক নম্বর
  • BIOS সংস্করণ
  • পিসিআই / পিসিআইই স্লট এবং গতি

প্রভৃতি

বিবেচনা করার বিষয়গুলি:

  • biosdecodeBIOS মেমরিটিকে বিশ্লেষণ করে এবং সমস্ত কাঠামোর তথ্য মুদ্রণ করে।
  • ডিকোডিং বিআইওএস ডেটা কম্পিউটারের ডিএমআই ডাম্প করার সমান । DMI টেবিল প্রধানত বর্ণনা কি সিস্টেমে বর্তমানে তৈরি করা হয়।
  • সরবরাহ করা ডেটা biosdecodeমানব-পঠনযোগ্য ফর্ম্যাটে নয়।

স্ক্রিনে সামগ্রী দেখতে

আপনাকে dmidecodeকম্পিউটারের ডিএমআই (এসএমবিআইওএস) টেবিলের সামগ্রীগুলি স্ক্রিনে ফেলে দেওয়ার জন্য কমান্ডটি ব্যবহার করতে হবে ।

$ sudo dmidecode --type 0 

আরও তথ্যের জন্য ম্যান পৃষ্ঠাটি অনুসন্ধান করুন:

$ man dmidecode

হ্যাঁ, কার্নেলটি কেবলমাত্র র‍্যামের বিআইওএস থেকে প্রয়োজনীয় তথ্য রাখে। তবে আপনি সি অ্যাপ্লিকেশন ব্যবহার করে মূল ব্যবহারকারী থেকে রিয়েল-টাইম বিআইওএস কল করতে পারেন যা এমবেডড এএসএম (এসেম্বলি কোড) ইত্যাদি অন্তর্ভুক্ত করে include

আপনি এই নিবন্ধে লিনাক্স কার্নেল এবং একটি সিস্টেমের বিআইওএস সম্পর্কে আরও জানতে পারেন শিরোনাম: লিনাক্স এবং বিআইওএস ।


12

আমি মনে করি আপনি যা খুঁজছেন তা হ'ল flashrom। প্রদত্ত যে আপনার সিস্টেম সমর্থিত, আপনি জারি করে আপনার BIOS সামগ্রীটি পড়তে পারেন

# flashrom -r <outputfile>

আপনি যদি কেবল তথাকথিত সিএমওএস র‌্যাম সংরক্ষণ করতে চান (আরটিসি এট অ্যালার্মের মতো আপনি যে কনফিগারেশনটি সেগুলি অতিরিক্ত বাইটগুলি সংরক্ষণ করেন) কার্নেলের nvramড্রাইভার এবং ডিভাইস আপনাকে সহায়তা করতে পারে:

config NVRAM
     tristate "/dev/nvram support"
     depends on ATARI || X86 || (ARM && RTC_DRV_CMOS) || GENERIC_NVRAM
     ---help---
       If you say Y here and create a character special file /dev/nvram
       with major number 10 and minor number 144 using mknod ("man mknod"),
       you get read and write access to the extra bytes of non-volatile
       memory in the real time clock (RTC), which is contained in every PC
       and most Ataris.  The actual number of bytes varies, depending on the
       nvram in the system, but is usually 114 (128-14 for the RTC).

       This memory is conventionally called "CMOS RAM" on PCs and "NVRAM"
       on Ataris. /dev/nvram may be used to view settings there, or to
       change them (with some utility). It could also be used to frequently
       save a few bits of very important data that may not be lost over
       power-off and for which writing to disk is too insecure. Note
       however that most NVRAM space in a PC belongs to the BIOS and you
       should NEVER idly tamper with it. See Ralf Brown's interrupt list
       for a guide to the use of CMOS bytes by your BIOS.

       On Atari machines, /dev/nvram is always configured and does not need
       to be selected.

       To compile this driver as a module, choose M here: the
       module will be called nvram.

এটি একটি ভাল পরামর্শ তবে সম্ভবত আপনার ল্যাপটপে কাজ করবে না। এই সফ্টওয়্যারটির জন্য ল্যাপটপ বিআইওএস'র সমর্থন নেই। উদাহরণস্বরূপ এটি আমার মালিকানাধীন কোনও থিঙ্কপ্যাড ল্যাপটপে চালিত হবে না (অনেকগুলি বিভিন্ন মডেল)।
এসএমএল

10

যদি অন্য সরঞ্জামগুলি উপলভ্য না হয় বা ব্যবহার না করা যায় তবে এখানে স্মৃতিচারণের কোন অঞ্চলটি নষ্ট করা উচিত তা সম্পর্কে শিক্ষিত অনুমান করার একটি উপায়।

উদাহরণস্বরূপ, ভার্চুয়ালবক্স ভিএম এর মধ্যে থেকে আমি সফলভাবে এর বিআইওএস ডাম্প করে ফেলেছি:

$ grep ROM /proc/iomem # https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-firmware-memmap
000c0000-000c7fff : Video ROM
000e2000-000e2fff : Adapter ROM
  000f0000-000fffff : System ROM
# dd if=/dev/mem of=pcbios.rom bs=64k skip=15 count=1 # 15*64k + 64k

2
আপনি কীভাবে জানবেন যে মেমরির ঠিকানার ভিত্তিতে কোন আকারগুলি ব্যবহার করতে হবে?
unseen_rider

7

বিকল্প বায়োস ইন dmidecode

dmidecode -t bios

থেকে মেমরি পড়ুন C:0000করার F:FFFFdmidecode প্রয়োজন ছাড়াই

dd if=/dev/mem bs=1k skip=768  count=256 2>/dev/null | strings -n 8

3

এটি ভার্চুয়ালবক্সে আমার জন্য কাজ করেছে:

$ grep ROM /proc/iomem

যার ফলাফল:
000c0000-000c7fff: ভিডিও রম
000e2000-000e2fff: অ্যাডাপ্টার রম
000f0000-000fffff: সিস্টেম রম

সিস্টেম রমটি 000f0000 থেকে শুরু হয়, যা 0xF0000।

ব্রাউজারটি খুলুন এবং http://www.hexadecimald অভিধান . com/ hexadecimal/0xF0000 এ যান । এটি বলছে দশমিক মান 983040, যা 1024 দ্বারা বিভক্ত হয়ে কিলোবাইট পেতে 960 যা 'পয়েন্ট' এড়ানোর জন্য পয়েন্ট এবং মান।

শেষ সংখ্যাটি 0xFFFFF যা 1048575 যা 1024 এর সাথে লজ্জাজনক। 1024 - 960 হল 64, যা 'গণনা' এর মান।

বায়োস ডাম্প চালানোর কমান্ডটি হ'ল:

dd if=/dev/mem of=pcbios.bin bs=1k skip=960 count=64
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.