উবুন্টু 16.04+ পুনরায় চালু হওয়ার পরে পূর্ববর্তী বুট লগটি কীভাবে সন্ধান করবেন?


20

আমার প্রশ্নটি হল, আমি পূর্ববর্তী সিস্টেমের বুট প্রচেষ্টা থেকে বুট লগটি কীভাবে খুঁজে পাব?

আজ যখন আমার পিসিতে প্রথম চালিত Escহচ্ছিল , উবুন্টু লোগোতে বুট প্রক্রিয়াটি বন্ধ হয়ে গেল, যখন আমি টিপলাম তখন আমি বেশ কয়েকটি লাইন দেখতে পেয়েছি যার মধ্যে কিছু কার্নেল ত্রুটি রয়েছে এবং নীচে পুনরায় চালু করতে হবে, তাই আমি Ctrl+ ALt+ চাপলাম Delএবং পরবর্তী বুটটি সমস্যা ছাড়াই ঠিক হয়ে গেল।

প্রথম ব্যর্থ বুটের সময় আমি যে পর্দাটি দেখেছি তাতে বার্তাগুলি খুঁজে পেতে আমার সমস্যা হয়। আমার ফোনটিতে ছবি তোলা উচিত ছিল?

/var/log/bootনেই কিন্তু খালি, আমি অনুসন্ধান kern.log এবং syslog- র স্ট্রিং আমি আজকের তারিখ সঙ্গে স্মরণ জন্য errorকিন্তু আমি আগের বুট পর্দায় যা দেখেছি সেই পরিচিত কিছুই পাওয়া যায় নি।

$ journalctl -b -1 বুট করার সময় আমাকে কেবল কার্নেল বার্তা দেয়, আমি এটি অন্য কোথাও খুঁজে পেতে পারি এবং বুট চলাকালীন স্ক্রিনে যা দেখাচ্ছিল সেগুলি নয়, জার্নালটেল আমার পক্ষে অকেজো, আমি বুটের সময় পর্দায় প্রদর্শিত বার্তাগুলি সন্ধান করছি।

আপাতত, কেবলমাত্র বিকল্পটি হল কাগজে বার্তা লেখার একটি ছবি নেওয়া।

উত্তর:


17

একটি অনাবন্ধিত বৈশিষ্ট্যযুক্ত বাগ হিসাবে প্রতিবেদন করা

সেখানে একটি বাগ এই দায়ের রিপোর্ট হয় বিষয় । কারণ rsyslogইতিমধ্যে /var/log/syslogএবং syslog.1, একাধিক বুট জার্নালগুলি বজায় রেখেছিল .2.gz, .3.gz... syslog.7.gzবিকাশকারীরা মনে করেছিলেন অতিরিক্ত journalctlলগ রাখার ফলে ডিস্কের স্থান নষ্ট হবে।

বাগ প্রতিবেদন 3 জানুয়ারী, 2018 তে জানিয়েছে যে নতুন ইনস্টলের জন্য rsyslogআর ডিফল্ট হবে না এবং এটি journalctlএকাধিক বুট ডেটা লগ রাখবে।

উবুন্টুকে পুনরায় ইনস্টল না করে একাধিক বুট লগ তৈরি করুন

আমাদের বেশিরভাগই নতুন ইনস্টল করবেন না যাতে একাধিক journalctlবুট লগ সক্ষম হয় সেই ক্ষেত্রে আমরা ব্যবহার করতে পারি:

$ sudo mkdir -p /var/log/journal
$ sudo systemd-tmpfiles --create --prefix /var/log/journal
Cannot set file attribute for '/var/log/journal', value=0x00800000, mask=0x00800000: Operation not supported

এই গিথুব প্রতিবেদন অনুসারে সতর্কতা বার্তা "ফাইল বৈশিষ্ট্য সেট করতে পারেন না" উপেক্ষা করা যেতে পারে।

Ptionচ্ছিক অবিরাম স্টোরেজ সেটিং

পূর্ববর্তী বুট লগিংটি বহু মাস ব্যবহার করার পরে আমি অন্য একটি বিকল্প আবিষ্কার করেছি যা এতে সেট করা যেতে পারে /etc/systemd/journald.conf:

থেকে journald.conf man পৃষ্ঠা :

সংগ্রহস্থল =

জার্নাল ডেটা কোথায় সঞ্চয় করতে হবে তা নিয়ন্ত্রণ করে। একটি "উদ্বায়ী", "ধ্রুবক", "অটো" এবং "কোনওটিই নয়"। যদি "অস্থির" হয় তবে জার্নাল লগ ডেটা কেবল মেমরিতে সংরক্ষণ করা হবে, যেমন / রান / লগ / জার্নাল শ্রেণিবিন্যাসের নীচে (যা প্রয়োজন হলে তৈরি করা হয়)। যদি "অবিচলিত" থাকে তবে প্রাথমিক ডিস্কে ডেটা সংরক্ষণ করা হবে, যেমন /var/log/journalহায়ারার্কির নীচে (যা প্রয়োজন হলে তৈরি করা হয়), ফলব্যাক /run/log/journal(যা প্রয়োজন হলে তৈরি করা হয়), বুট করার সময় এবং যদি ডিস্কটি লিখনযোগ্য না হয়। "অটো" "ধ্রুবক" এর অনুরূপ /var/log/journal তবে প্রয়োজনে ডিরেক্টরি তৈরি হয় না, যাতে লগের ডেটা কোথায় যায় তার অস্তিত্ব নিয়ন্ত্রণ করে। "কিছুই নয়" সমস্ত স্টোরেজ বন্ধ করে দেয়, প্রাপ্ত সমস্ত লগ ডেটা বাদ দেওয়া হবে। কনসোলের মতো অন্যান্য লক্ষ্যগুলিতে ফরোয়ার্ড করা, কার্নেল লগ বাফার, বা একটি সিসলগ সকেট এখনও কাজ করবে। "অটো" এ ডিফল্ট।

সংক্ষেপে মন্তব্য মুছে ফেলুন এবং এতে লাইনটি সংশোধন করুন:

Storage=persistent

পূর্ববর্তী বুটগুলির তালিকা প্রদর্শন করুন

$ journalctl --list-boots
-15 58a9e56135564cd8a52d547b19e76bf5 Fri 2018-02-02 18:34:35 MST—Fri 2018-02-02 23:07:14 M
-14 3514e056440341b1b6e5f03d109681bc Sat 2018-02-03 06:05:12 MST—Sat 2018-02-03 08:07:44 M
-13 0d1a32dc275348589f5ecdc72180c018 Sat 2018-02-03 08:08:05 MST—Sat 2018-02-03 08:08:34 M
-12 74159b593f3a401589ee6bd78e31684b Sat 2018-02-03 08:08:51 MST—Sun 2018-02-04 08:32:09 M
-11 4b394a9aad584ab2bfabe3b77eeed78f Sun 2018-02-04 08:32:26 MST—Mon 2018-02-05 16:54:02 M
-10 8e461ed2593c4fd896ca3b71eb3c0fba Mon 2018-02-05 16:54:34 MST—Tue 2018-02-06 03:54:30 M
 -9 ec7ba0e4dfe241c0b9c978d278fcca6d Tue 2018-02-06 03:54:47 MST—Tue 2018-02-06 16:25:02 M
 -8 b5c110267c214c38b63d0a367197d118 Tue 2018-02-06 16:25:19 MST—Thu 2018-02-08 16:49:03 M
 -7 75c3b117ac6a4de984dc3ced15edb7f8 Thu 2018-02-08 16:49:22 MST—Fri 2018-02-09 03:51:09 M
 -6 7338bd1007bc42dda5c8667eeefe1a59 Fri 2018-02-09 03:51:26 MST—Fri 2018-02-09 16:55:52 M
 -5 4b6cd0121327454ca3db035c7ed42df6 Fri 2018-02-09 16:56:09 MST—Sat 2018-02-10 07:55:14 M
 -4 0d56207f9ec0405ca3a3fd638334de2f Sat 2018-02-10 07:55:32 MST—Mon 2018-02-12 22:16:05 M
 -3 0f230cc546fd4aec8f5233e0074ab3e1 Tue 2018-02-13 03:57:20 MST—Wed 2018-02-14 22:58:56 M
 -2 c0d2c0141dd840cbab75d3c2254f8781 Wed 2018-02-14 22:59:13 MST—Sat 2018-02-17 22:46:14 M
 -1 aafb2573a6374e019a7165cb8eee74a0 Sun 2018-02-18 06:02:03 MST—Mon 2018-02-19 04:16:36 M
  0 8462f1969c6f4d61973e7e245014b846 Mon 2018-02-19 04:16:53 MST—Tue 2018-02-20 18:51:42 M

শেষ বুট লগ প্রদর্শন করুন

$ journalctl -b-1
-- Logs begin at Fri 2018-02-02 18:34:35 MST, end at Thu 2018-03-01 16:43:25 MST. --
Feb 28 20:03:15 alien systemd-journald[290]: Runtime journal (/run/log/journal/) is 8.0M, 
Feb 28 20:03:15 alien kernel: Linux version 4.14.23-041423-generic (kernel@kathleen) (gcc 
Feb 28 20:03:15 alien kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-4.14.23-041423-generi
Feb 28 20:03:15 alien kernel: KERNEL supported cpus:
Feb 28 20:03:15 alien kernel:   Intel GenuineIntel
Feb 28 20:03:15 alien kernel:   AMD AuthenticAMD
Feb 28 20:03:15 alien kernel:   Centaur CentaurHauls
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x008: 'MPX bounds registe
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x010: 'MPX CSR'
Feb 28 20:03:15 alien kernel: x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
Feb 28 20:03:15 alien kernel: x86/fpu: xstate_offset[3]:  832, xstate_sizes[3]:   64
Feb 28 20:03:15 alien kernel: x86/fpu: xstate_offset[4]:  896, xstate_sizes[4]:   64
Feb 28 20:03:15 alien kernel: x86/fpu: Enabled xstate features 0x1f, context size is 960 b
Feb 28 20:03:15 alien kernel: e820: BIOS-provided physical RAM map:
Feb 28 20:03:15 alien kernel: BIOS-e820: [mem 0x0000000000000000-0x0000000000057fff] usabl
lines 1-19

আপনি যে প্যারামিটারটি -b-1দেখতে পাচ্ছেন তা অন্যান্য রেফারেন্সের চেয়ে আলাদা close ম্যান পৃষ্ঠা থেকে :

-b [ID][±offset], --boot=[ID][±offset]

নির্দিষ্ট বুট থেকে বার্তা প্রদর্শন করুন। এটি "_BOOT_ID =" এর জন্য একটি মিল যোগ করবে।

যুক্তিটি খালি থাকতে পারে, সেই ক্ষেত্রে বর্তমান বুটের জন্য লগগুলি প্রদর্শিত হবে।

যদি বুট আইডি বাদ দেওয়া হয় তবে একটি পজিটিভ অফসেট জার্নালের শুরু থেকে শুরু হওয়া বুটগুলি সন্ধান করবে এবং জার্নালের শেষে থেকে সমান বা কম-শূন্য অফসেট বুটগুলি সন্ধান করবে। সুতরাং, 1 এর অর্থ কালানুক্রমিক জার্নালে প্রথম বুট পাওয়া যায়, 2 দ্বিতীয় এবং আরও; যখন -0 হ'ল শেষ বুট, -1 শেষের আগে বুট এবং আরও অনেক কিছু। একটি খালি অফসেট নির্দিষ্ট করে -0 উল্লেখ করার সমতুল্য, যখন বর্তমান বুটটি শেষ বুট না হয় (যেমন - কারণ - ডিরেক্টরিটি ভিন্ন মেশিনের লগগুলি দেখতে নির্দিষ্ট করা হয়েছিল)।

তারপরে প্রতি একবারে cronবা টাইমারগুলির সাথে আপনি পুরানো লগগুলি পরিষ্কার করতে পারেন :

journalctl --vacuum-time=2d  # keep last two days or

journalctl --vacuum-size=300M  # keep last 300MB

আপনি systemctl restart systemd-journald বা killall -USR1 systemd-journaldকরতে হবেStorage=autoথেকে অসুবিধাও /etc/systemd/journald.conf
পাবলো বিয়ানচি

@ পাবলোবিয়ানচি আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ। আমি ইতিমধ্যে আমার একাধিক-বুট লগগুলি তৈরি করেছি এবং এগুলি 300MB + থেকে <150MB এ ছাঁটাই করতে ভ্যাকুয়াম ক্লিনারটি একটি মাসিক cronকাজ হিসাবে সেটআপ হয়ে গেছে যা আমি আপনার প্রস্তাবনাগুলি পরীক্ষা করার জন্য সবকিছু মুছে ফেলার এবং স্ক্র্যাচ থেকে শুরু করার মতো মনে করি না। আশা করি এটি অন্যকে ত্রুটি বার্তাগুলি এড়াতে সহায়তা করবে যা কোনওভাবেই কার্যকর হবে বলে মনে হচ্ছে না।
WinEunuuchs2 ইউনিক্স 1

1
@ পাবলোবিয়ানচি "স্টোরেজ = অটো" ডিফল্ট। উত্স থেকে উদ্ধৃত সুপারিশটি কীভাবে "সঞ্চয়স্থান = স্থির" থাকে তা দেখিয়ে আমি আমার উত্তরটি সংশোধন করেছি।
WinEunuuchs2Unix

9

আমারও একই সমস্যা ছিল এবং স্পষ্টতই উত্তরটি #ubuntuআইআর-চ্যানেলে পেয়েছি ।

যে কোনও কারণে, আমি /var/log/journal সিস্টেমড-জার্নালে গোষ্ঠী অ্যাক্সেসযোগ্য ফোল্ডারটি অনুপস্থিত ছিল ।

ফোল্ডারটি যুক্ত করার পরে, আমি এর মাধ্যমে পূর্ববর্তী বুটের লগগুলি দেখতে সক্ষম হয়েছি $ journalctl -b1


আপনাকে ধন্যবাদ তবে, কিছুক্ষণ আগে আমি পুরোপুরি কাজ করার জন্য জার্নালটেল তৈরি করতে সক্ষম হয়েছি, তবে সেখানে বুট লগ নেই, এটি কেবল বুট সময় থেকে কর্নেল বার্তা রয়েছে, আমি এটি অন্য কোথাও খুঁজে পেতে পারি। বুটের সময় স্ক্রিনে প্রদর্শিত বার্তা সম্বলিত লগ সন্ধান করতে আমি পরিচালনা করি নি not
মাইক

10
প্রকৃতপক্ষে বিকল্প সমাধানটি উইকিতে দেওয়া হয় , নাম সেট Storage=persistentকরা /etc/systemd/journald.confএবং চালানো systemctl restart systemd-journald
dma_k

1
হ্যাঁ মাইসও মাইস করছিল /var/log/journal! এটি টাটকা ইনস্টল, জার্নালের মতো গুরুত্বপূর্ণ কিছু কীভাবে অনুপস্থিত !!!
ছদ্মবেশী

আমার ক্ষেত্রে সম্পাদনাটি /etc/systemd/journald.conf পূর্ববর্তী অস্তিত্বহীন তৈরি করেছে /var/log/journal/এবং এটি একটি লুওং বুটলগ সহ একটি উপ-ডিরেক্টরিতে পূর্ণ হয়েছে (সম্পূর্ণ হতে 1 মিনিট সময় নিয়েছিল)

@ কেএনবি, ফিউইউইউ, আমি নিশ্চিত যে এটিই systemctl restart systemd-journaldআপনার প্রকৃতপক্ষে / var / লগ / জার্নালটি তৈরি করেছে
অস্পেক্স

5

সিস্টেমড-জার্নাল্ডের ম্যান পেজ থেকে শীর্ষ উত্তর থেকে সমাধানটি সম্পন্ন করার পদক্ষেপগুলি:

mkdir -p /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal
systemctl restart systemd-journald

আমি su হিসাবে এটি করেছি


3

উত্তরটি পাওয়া যাবে man journald.conf, বিশেষত বিকল্পটি Storage=:

জার্নাল ডেটা কোথায় সঞ্চয় করতে হবে তা নিয়ন্ত্রণ করে। একটি "উদ্বায়ী", "ধ্রুবক", "অটো" এবং "কোনওটিই নয়"। [...] "অটো" "ধ্রুবক" এর অনুরূপ তবে ডিরেক্টরি / ভার / লগ / জার্নালটি প্রয়োজন হলে তৈরি করা হয় নি, যাতে লগের ডেটা কোথায় যায় তার অস্তিত্ব নিয়ন্ত্রণ করে। [...] "অটো" এ ডিফল্ট।

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

আমার সিস্টেমে এই আকারটি বর্তমানে 120 এমবি হিসাবে কনফিগার করা হয়েছে, আপনি /etc/systemd/journald.confএটি সিস্টেমড-জার্নাল্ড.সর্বস্ব ইউনিটের জন্য সামঞ্জস্য করতে পারেন ।


3

journalctl -bXআপনি যে বুটটি উল্লেখ করেছেন সে ক্ষেত্রে x হ'ল ব্যবহার করুন , -b0আপনার আসল বুট এবং -b-1এর আগে বুটও রয়েছে (যা কেবল তখনই উপস্থিত থাকে যখন আপনার /var/log/journalগ্রুপ 'সিস্টেমড-জার্নাল' গ্রুপের ফোল্ডার উপস্থিত থাকে)। আপনি ঠিক কতটা যেতে পারবেন তা আপনাকে জানাতে পারে না তবে এটি নিশ্চিতভাবে।

সঙ্গে উপলব্ধ বুট তালিকা

journalctl --list-boots

2
-বি 0 কাজ করেছে তবে -বি 1 আমাকে দিয়েছে Specifying boot ID has no effect, no persistent journal was found.কিছু গুগল করার পরে আমি মনে করি এটি আরও ডেটা সংরক্ষণের জন্য সক্ষম করতে হবে।
মাইক 8

তারপরে আমার অনুমান যে ব্যর্থ হওয়া বুট থেকে ডেটা চলে গেছে। এখানে একবার দেখুন আমি সবেমাত্র নিজেকে খুঁজে পেলাম যে পুরানো লগিং পুনরায় সক্রিয় করতে খুব ঝামেলা ছাড়াই অসম্ভব। আমার সিস্টেমের জড়গুলিতে প্রায় 2 ঘন্টা মজা ফিড করে।
ভিডিওনাথ

ভোট দিন, তবে আমি আশা করি কেউ এটি করার জন্য অন্য কোনও উপায় যুক্ত করবেন, এটি লজ্জার বিষয় হবে যদি পূর্ববর্তী সেশন থেকে পূর্ববর্তী বুট লগটি ডিফল্ট কনফিগারেশন দিয়ে সম্ভব না হয়, তবে কোনও ডিবাগ বুট সমস্যা কীভাবে হবে?
মাইক 18

1
এখানে পোস্টটি উবুন্টু সার্ভার 16.04LTS এ ডিফল্ট কনফিগারেশনে কাজ করে ( unix.stackexchange.com/a/345978/77095 ) journalctl -o short-precise -k -b -1শেষ বুট দেখায়।
jtlindsey
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.