ลินุกซ์เควส ขอแสดงความยินดีกับผู้ชนะและบอกเราเกี่ยวกับวิธีแก้ปัญหาของงาน

ลินุกซ์เควส ขอแสดงความยินดีกับผู้ชนะและบอกเราเกี่ยวกับวิธีแก้ปัญหาของงาน

เมื่อวันที่ 25 มีนาคม เราเปิดการลงทะเบียนสำหรับ ลินุกซ์เควสนี่คือเกมสำหรับผู้ชื่นชอบและผู้เชี่ยวชาญระบบปฏิบัติการ Linux สถิติบางส่วน: มีผู้ลงทะเบียนเล่นเกม 1117 คน, 317 คนพบคีย์อย่างน้อยหนึ่งคีย์, 241 คนทำภารกิจด่านแรกสำเร็จ, 123 คนผ่านด่านที่สองสำเร็จ และ 70 คนผ่านด่านที่สาม วันนี้เกมของเราสิ้นสุดลงแล้ว และเราขอแสดงความยินดีกับผู้ชนะของเรา!

  • Alexander Teldekov เกิดขึ้นที่หนึ่ง
    อเล็กซานเดอร์พูดกับตัวเองว่าเขาเป็นผู้ดูแลระบบที่ธรรมดาที่สุด อาศัยอยู่ในโวลโกกราด ดูแลระบบที่คล้ายยูนิกซ์ต่างๆ มาประมาณยี่สิบปี ฉันเคยทำงานในผู้ให้บริการอินเทอร์เน็ต ธนาคาร และผู้วางระบบ ปัจจุบันเขาทำงานจากระยะไกลในบริษัทขนาดเล็ก โดยทำงานเกี่ยวกับโครงสร้างพื้นฐานระบบคลาวด์สำหรับลูกค้าชาวต่างชาติรายใหญ่ ชอบอ่านและฟังเพลง เกี่ยวกับเกม Alexander กล่าวว่าเขาชอบเกมโดยรวม เขารักงานประเภทนี้ ในระหว่างการสัมภาษณ์ที่บริษัทแห่งหนึ่ง ฉันได้ทำอะไรที่คล้ายกับ Hackerrank มันน่าสนใจมาก
  • อันดับที่สอง - โรมัน ซูสลอฟ
    นวนิยายจากมอสโก เขาอายุ 37 ปี ทำงานเป็นวิศวกร Linux/Unix ที่ Jet Infosystems ในที่ทำงาน ฉันต้องดูแลและแก้ไขปัญหาระบบ Linux/Unix + SAN ความสนใจมีหลากหลาย: ระบบ Linux, การเขียนโปรแกรม, วิศวกรรมย้อนกลับ, ความปลอดภัยของข้อมูล, Arduino เกี่ยวกับเกม Roman ตั้งข้อสังเกตว่าเขาชอบเกมนี้โดยรวม “ฉันยืดสมองเล็กน้อยและหยุดพักจากชีวิตประจำวันสีเทาๆ ในการทำงานในแต่ละวัน 🙂 ฉันอยากมีงานเพิ่ม ไม่อย่างนั้นก่อนที่ฉันจะมีเวลาลองชิม เกมก็จบไปแล้ว”
  • ประการที่สาม - alex3d
    อเล็กซ์อาศัยอยู่ในมอสโกและทำงานด้านการพัฒนาซอฟต์แวร์ “ขอบคุณสำหรับการแข่งขัน การได้ทดสอบทักษะ Google-Fu ของฉันเป็นเรื่องน่าสนใจ”

นอกจากนี้ในการจัดอันดับผู้เล่นที่ดีที่สุด 10 คน:

  • เยฟเกนีย์ ซัลดาเยฟ
  • มาร์เคิล โมคนาเชฟสกี
  • คอนสแตนติน โคโนซอฟ
  • พาเวล เซอร์กีเยฟ
  • วลาดิมีร์ โบวาเยฟ
  • อีวาน บุบนอฟ
  • พาฟโล เคล็ตต์ส

เราเข้าใจดีว่ามีตัวเลือกมากมายในการแก้ปัญหาทั้งหมดของเรา วิธีแก้ไขที่เป็นไปได้บางส่วนได้อธิบายไว้ด้านล่างนี้

1. ขั้นแรก

เราเรียกสิ่งนี้ว่า "คุณเป็นผู้ดูแลระบบจริงหรือ" เนื่องจากงานนั้นค่อนข้างง่าย - ซ่อมบริการโคมไฟอุ่น

1.1. ข้อเท็จจริงที่น่าสนใจ:

ผู้เล่นสองคนพบกุญแจดอกแรกในช่วง 15 นาทีแรกของเกม และในชั่วโมงแรกเรามีผู้นำสามคนที่ทำภารกิจสำเร็จ

1.2. ออกกำลังกาย

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

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

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

ทุกคนคาดหวังว่าจะแก้ไขปัญหาได้ในทันที!

1.3. วิธีแก้ปัญหา

1. ก่อนอื่น คุณต้องเปลี่ยนรหัสผ่านรูทบนเครื่องเสมือนเพื่อที่จะสามารถเข้าถึงได้ เมื่อเริ่มต้นเราสังเกตเห็นว่านี่คือ Ubuntu 16.04 Server

หากต้องการรีเซ็ตรหัสผ่านรูทให้รีสตาร์ทเครื่องเมื่อโหลดในขณะที่เมนูด้วงปรากฏขึ้นให้ไปที่แก้ไขรายการ Ubuntu ด้วยปุ่ม "e" แก้ไขบรรทัด linux เพิ่มที่ส่วนท้าย init=/bin/bash. เราโหลดผ่าน Ctrl+x เราได้รับทุบตี ติดตั้งรูทอีกครั้งด้วย rw เปลี่ยนรหัสผ่าน:

$ mount -o remount,rw /dev/mapper/ubuntu--vg-root
$ passwd

อย่าลืมเกี่ยวกับการซิงค์ รีบูต

2. เงื่อนไขบอกว่าเว็บเซิร์ฟเวอร์ของเราไม่ทำงาน ดู:

$ curl localhost
Not Found
The requested URL / was not found on this server.
Apache/2.4.18 

นั่นคืออันที่จริง Apache กำลังทำงานอยู่ แต่ตอบสนองด้วยรหัส 404 มาดูการกำหนดค่ากัน:

$ vim /etc/apache2/sites-enabled/000-default.conf

นอกจากนี้ยังมีกุญแจอยู่ที่นี่ - StevenPaulSteveJobs

กำลังตรวจสอบเส้นทาง /usr/share/WordPress - ไม่มีสิ่งนั้น แต่มี /usr/share/wordpress. แก้ไขการกำหนดค่าและรีสตาร์ท Apache

$ systemctl restart apache2

3. ลองอีกครั้ง เราได้รับข้อผิดพลาด:

Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /usr/share/wordpress/wp-includes/wp-db.php on line 1488

ฐานข้อมูลไม่ทำงาน?

$ systemctl status mysql
Active: active (running)

เกิดอะไรขึ้น? เราจำเป็นต้องคิดออก ในการดำเนินการนี้ คุณจะต้องเข้าถึง MySQL ตามที่อธิบายไว้ใน เอกสาร. เอกสารประกอบข้อหนึ่งแนะนำให้เราลงทะเบียนตัวเลือก skip-grant-tables в /etc/mysql/mysql.conf.d/mysqld.cnf. นอกจากนี้ยังมีกุญแจอยู่ที่นี่ - AugustaAdaKingByron

การแก้ไขสิทธิ์ของผู้ใช้ 'wp'@'localhost'. เราเปิดตัว MySQL ทำให้สามารถเข้าถึงได้ผ่านเครือข่าย โดยแสดงความคิดเห็นเกี่ยวกับตัวเลือกในการกำหนดค่า skip-networking.

4. หลังจากขั้นตอนเหล่านี้ เว็บเซิร์ฟเวอร์เริ่มทำงาน แต่ไซต์ยังคงใช้งานไม่ได้เนื่องจาก

Warning: require_once(/usr/share/wordpress/wp-content/themes/twentysixteen/footer.php): failed to open stream: Permission denied in /usr/share/wordpress/wp-includes/template.php on line 562

เราแก้ไขสิทธิ์ในไฟล์

$ chmod 644 /usr/share/wordpress/wp-content/themes/twentysixteen/footer.php

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

2. ขั้นตอนที่สอง

จำเป็นต้องแก้ไขปัญหาการรวบรวมการวิเคราะห์ ทุกคนชื่นชอบการวิเคราะห์ ใครใช้ ที่ไหน และในปริมาณเท่าใด เราเกิดกรณีที่วิศวกรทุกคนอาจต้องเผชิญในรูปแบบใดรูปแบบหนึ่งในชีวิต

2.1. ข้อเท็จจริงที่น่าสนใจ

ผู้เล่นคนหนึ่งของเราป้อนคีย์ที่ถูกต้องภายใน 10 นาทีแรกของเกม และภายในชั่วโมงแรก เราก็มีผู้นำที่ทำภารกิจสำเร็จ

2.2. ออกกำลังกาย

คุณไปทำงานที่บริษัท ผู้จัดการมาหาคุณและขอให้คุณดูว่าใครส่งจดหมายจากแอฟริกาถึงใคร เราจำเป็นต้องสร้างที่อยู่ผู้รับ 21 อันดับแรกตามที่อยู่เหล่านั้น ตัวอักษรตัวแรกของที่อยู่ผู้รับคือกุญแจ สิ่งหนึ่งที่: เมลเซิร์ฟเวอร์ที่ส่งจดหมายไม่โหลด ทุกคนคาดหวังว่าจะแก้ไขปัญหาได้ในทันที!

2.3. วิธีแก้ปัญหา

1. เซิร์ฟเวอร์ไม่สามารถบู๊ตได้เนื่องจากไม่มีพาร์ติชั่นสว็อปใน fstab เมื่อทำการโหลด ระบบจะพยายามเมานต์และล่ม วิธีการบูต?

ดาวน์โหลดภาพ เราดาวน์โหลด CentOS 7 บูตจาก Live CD/DVD (การแก้ไขปัญหา -> ช่วยเหลือ) ติดตั้งระบบ แก้ไข /etc/fstab. เราพบกุญแจดอกแรกทันที - GottfriedWilhelm11646Leibniz!

สร้างการแลกเปลี่ยน:

$ lvcreate -n swap centos -L 256M
$ sync && reboot

2. เช่นเคย ไม่มีรหัสผ่าน คุณต้องเปลี่ยนรหัสผ่านรูทบนเครื่องเสมือน เราทำสิ่งนี้ไปแล้วในภารกิจแรก เราเปลี่ยนแปลงและเข้าสู่เซิร์ฟเวอร์ได้สำเร็จ แต่จะเข้าสู่การรีบูตทันที เซิร์ฟเวอร์มีการใช้งานมากเกินไปด้วยความเร็วจนคุณไม่มีเวลาดูบันทึกทั้งหมดอย่างละเอียดด้วยซ้ำ จะเข้าใจสิ่งที่เกิดขึ้นได้อย่างไร?

อีกครั้งที่เราบูตจาก livecd ศึกษาบันทึกของระบบอย่างรอบคอบและในกรณีนั้นให้ตรวจสอบ cron เนื่องจากเป็นช่วงเวลาดังกล่าว ที่นั่นเราพบปัญหาและคีย์ที่สอง - Alan1912MathisonTuring!

จำเป็นต้องเข้า /etc/crontab ลบหรือแสดงความคิดเห็นในบรรทัด echo b > /proc/sysrq-trigger.

3. หลังจากที่เซิร์ฟเวอร์โหลดแล้ว และคุณสามารถทำงานของผู้จัดการให้เสร็จสิ้นได้: “ที่อยู่ในแอฟริกาคืออะไร” ข้อมูลนี้เปิดเผยต่อสาธารณะโดยทั่วไป คุณสามารถค้นหาข้อมูลนี้บนอินเทอร์เน็ตได้โดยใช้วลี "ที่อยู่ IP ของแอฟริกา", "ฐานข้อมูลทางภูมิศาสตร์" เพื่อแก้ไขปัญหา คุณสามารถใช้ฐานข้อมูลการกระจายที่อยู่ (geoip) ที่มีอยู่อย่างอิสระ เราใช้ฐานข้อมูลเป็นมาตรฐาน MaxMind GeoLite2พร้อมให้บริการภายใต้ใบอนุญาต Creative Commons Attribution-ShareAlike 4.0

มาลองแก้ปัญหาของเราโดยใช้ยูทิลิตี้ระบบ Linux เท่านั้น แต่โดยทั่วไปสามารถแก้ไขได้หลายวิธี: การใช้ยูทิลิตี้การกรองข้อความและการใช้สคริปต์ในภาษาการเขียนโปรแกรมต่างๆ

ขั้นแรก เราจะได้รับคู่ "IP ของผู้ส่งและผู้รับ" จากบันทึกอีเมล /var/log/maillog (มาสร้างตารางผู้รับอีเมล - IP ผู้ส่งกัน) ซึ่งสามารถทำได้ด้วยคำสั่งต่อไปนี้:

$ cat /var/log/maillog | fgrep -e ' connect from' -e 'status=sent' | sed 's/[]<>[]/ /g' | awk '/connect from/ {ip=$11} /status=sent/ {print $10" "ip}' > log1.txt

และก่อนที่เราจะรวบรวมฐานข้อมูลที่อยู่แอฟริกันต่อไป เรามาดูที่อยู่ IP อันดับต้นๆ ของผู้ส่งกันดีกว่า

$ cat log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n 40
5206 [email protected]
4165 [email protected]
3739 [email protected]
3405 [email protected]
3346 [email protected]

ในบรรดาผู้รับทั้งหมด ผู้รับสามคนแรกจากด้านบนมีความโดดเด่นในเรื่องจำนวนตัวอักษรอย่างชัดเจน หากคุณรวบรวมที่อยู่ IP ของผู้ส่งที่ส่งไปยังที่อยู่จาก 3 อันดับแรกนี้ คุณจะสังเกตเห็นความเด่นที่ชัดเจนของเครือข่ายบางแห่ง:

$ cat log1.txt | fgrep '[email protected]' | cut -d' ' -f2 | sort | cut -d'.' -f1 | uniq -c | sort -r | head
831 105
806 41
782 197
664 196
542 154
503 102
266 156
165 45
150 160
108 165

เครือข่ายส่วนใหญ่ 105/8, 41/8, 196/8,197/8 ได้รับการจัดสรรให้กับ AFRINIC ซึ่งเป็นหนึ่งในห้าบริษัทรับจดทะเบียนอินเทอร์เน็ตระดับภูมิภาคที่จำหน่ายทรัพยากรอินเทอร์เน็ต AFRINIC กระจายพื้นที่ที่อยู่ทั่วแอฟริกา และ 41/8 หมายถึง AFRINIC โดยสมบูรณ์

https://www.nic.ru/whois/?searchWord=105.0.0.0 
https://www.nic.ru/whois/?searchWord=41.0.0.0

ดังนั้น จริงๆ แล้ว คำตอบของปัญหาก็คืออยู่ในบันทึกนั่นเอง

$ cat log1.txt | fgrep -e '105.' -e '41.' -e '196.' -e '197.' -e '154.' -e '102.' | awk '{print $1}' | sort | uniq -c | sort -r | head -n 21
4209 [email protected]
3313 [email protected]
2704 [email protected]
2215 [email protected]
1774 [email protected]
1448 [email protected]
1233 [email protected]
958 [email protected]
862 [email protected]
762 [email protected]
632 [email protected]
539 [email protected]
531 [email protected]
431 [email protected]
380 [email protected]
357 [email protected]
348 [email protected]
312 [email protected]
289 [email protected]
282 [email protected]
274 [email protected]

ในขั้นตอนนี้เราได้รับสตริง “LinuxBenedictTorvadst”

รหัสที่ถูกต้อง: "LinusBenedictTorvalds"

สตริงผลลัพธ์มีการพิมพ์ผิดที่เกี่ยวข้องกับคีย์ที่ถูกต้องในอักขระ 3 ตัวสุดท้าย นี่เป็นเพราะความจริงที่ว่าเครือข่ายที่เราเลือกไม่ได้มีไว้สำหรับประเทศในแอฟริกาโดยเฉพาะและเกี่ยวกับวิธีการแจกจ่ายอีเมลโดยที่อยู่ IP ในบันทึกของเรา

ด้วยข้อกำหนดที่เพียงพอของเครือข่ายที่ใหญ่ที่สุดที่จัดสรรให้กับประเทศในแอฟริกา จึงสามารถได้รับคำตอบที่แม่นยำ:

$ cat log1.txt | fgrep -e' '105.{30..255}. -e' '41. -e' '196.{64..47}. -e' '196.{248..132}. -e' '197.{160..31}. -e' '154.{127..255}. -e' '102.{70..255}. -e' '156.{155..255}. | awk '{print $1}' | sort | uniq -c | sort -r | head -n 21
3350 [email protected]
2662 [email protected]
2105 [email protected]
1724 [email protected]
1376 [email protected]
1092 [email protected]
849 [email protected]
712 [email protected]
584 [email protected]
463 [email protected]
365 [email protected]
269 [email protected]
225 [email protected]
168 [email protected]
142 [email protected]
111 [email protected]
 96 [email protected]
 78 [email protected]
 56 [email protected]
 56 [email protected]
 40 [email protected]

ปัญหายังสามารถแก้ไขได้ด้วยวิธีอื่น
ดาวน์โหลด MaxMind แกะมันออก และคำสั่งสามคำสั่งถัดไปก็ช่วยแก้ปัญหาของเราได้เช่นกัน

$ cat GeoLite2-Country-Locations-ru.csv | grep "Африка" | cut -d',' -f1 > africaIds.txt
$ grep -Ff africaIds.txt GeoLite2-Country-Blocks-IPv4.csv | cut -d',' -f1 > africaNetworks.txt
$ grepcidr -f africaNetworks.txt log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n21

ไม่ทางใดก็ทางหนึ่ง ในที่สุดเราก็คำนวณสถิติ และผู้จัดการได้รับข้อมูลที่จำเป็นในการทำงาน!

3. ขั้นตอนที่สาม

ขั้นตอนที่สามค่อนข้างคล้ายกับขั้นตอนแรก - คุณต้องแก้ไขบริการหลอดไฟอุ่นด้วย แต่ทุกอย่างซับซ้อนกว่าในงานแรก

3.1. ข้อเท็จจริงที่น่าสนใจ

ในช่วง 15 นาทีแรก ผู้เล่นสามคนพบกุญแจดอกแรก 2 ชั่วโมง 20 นาทีหลังจากเริ่มเวที ผู้ชนะของเราก็ทำภารกิจสำเร็จ

3.2. ออกกำลังกาย

คุณไปทำงานให้กับบริษัทที่เก็บเอกสารของบริษัททั้งหมดไว้ในเซิร์ฟเวอร์ Wiki ภายใน เมื่อปีที่แล้ว วิศวกรคนหนึ่งได้สั่งซื้อดิสก์ใหม่ 3 ตัวสำหรับเซิร์ฟเวอร์ นอกเหนือจากดิสก์ที่มีอยู่เพียงตัวเดียว โดยอ้างว่าเพื่อให้ระบบทนทานต่อข้อผิดพลาด ดิสก์นั้นจำเป็นต้องถูกวางไว้ในอาร์เรย์บางประเภท น่าเสียดายที่ไม่กี่สัปดาห์หลังการติดตั้ง วิศวกรก็ไปเที่ยวพักผ่อนที่อินเดียและไม่กลับมาอีก

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

เราจำเป็นต้องคืนค่าฟังก์ชันการทำงานของ Wiki ก่อนอื่น เราสนใจในเนื้อหาของหน้าวิกิ ข้อความบางชิ้นที่อยู่ในหน้าหนึ่งของวิกินี้คือรหัสผ่านสำหรับเซิร์ฟเวอร์ 1C และจำเป็นเร่งด่วนในการปลดล็อค

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

3.3. วิธีแก้ปัญหา

1. เราพยายามบู๊ตทีละตัวจากดิสก์ที่เรามีและทุกที่ที่เราได้รับข้อความเดียวกัน:

No bootable medium found! System halted 

คุณต้องบูตจากบางสิ่งบางอย่าง การบูตจาก Live CD/DVD (การแก้ไขปัญหา -> การช่วยเหลือ) ช่วยได้อีกครั้ง เมื่อโหลดเราพยายามค้นหาพาร์ติชั่นสำหรับบู๊ตเราหาไม่เจอ แต่สุดท้ายก็ไปอยู่ในเชลล์ เรากำลังพยายามศึกษาว่าจะทำอย่างไรกับดิสก์ เป็นที่รู้กันว่ามีสามคน มีเครื่องมือเพิ่มเติมสำหรับสิ่งนี้ใน CentOS เวอร์ชัน 7 ซึ่งมีคำสั่งต่างๆ blkid หรือ lsblkซึ่งแสดงข้อมูลทั้งหมดเกี่ยวกับดิสก์ให้เราทราบ

อย่างไรและสิ่งที่เราทำ:

$ ls /dev/sd*

ก็เห็นได้ชัดทันทีว่า

/dev/sdb1 - ext4
/dev/sdb2 - часть lvm
/dev/sda1 и /dev/sdc1 - части рейда
/dev/sda2 и /dev/sdc2 - про них ничего не известно на текущий момент

เราเมานต์ sdb1 ชัดเจนว่านี่คือพาร์ติชันสำหรับบูตของ CentOS 6

$ mkdir /mnt/sdb1 && mount /dev/sdb1 /mnt/sdb1

แน่นอนว่าเราไปที่ส่วนด้วงแล้วพบคีย์แรกที่นั่น - James191955Gosling ในไฟล์ที่ผิดปกติ

2. เราศึกษา pvs และ lvs เนื่องจากเราทำงานร่วมกับ LVM เราเห็นว่าควรมีฟิสิคัลวอลุ่ม 2 วอลุ่ม วอลุ่มหนึ่งไม่พบและบ่นเกี่ยวกับ uid ที่สูญหาย เราเห็นว่าควรมี 2 โลจิคัลวอลุ่ม: รูทและสวอป ในขณะที่รูทหายไปบางส่วน (แอตทริบิวต์ P ของวอลุ่ม) ไม่สามารถเมานท์ได้ ซึ่งน่าเสียดาย! เราต้องการเขาจริงๆ

มีดิสก์อีก 2 แผ่นเราดูประกอบและติดตั้ง:

$ mdadm --examine --verbose --scan
$ mdadm --assemble --verbose --scan
$ mkdir /mnt/md127 && mount /dev/md127  /mnt/md127 

เราเห็นแล้วว่านี่คือพาร์ติชันสำหรับบูตของ CentOS 6 และซ้ำกับที่มีอยู่แล้ว /dev/sdb1และที่นี่อีกครั้งคีย์เดียวกัน - DennisBMacAlistairCRitchie!
มาดูกันว่าประกอบยังไง. /dev/md127.

$ mdadm --detail /dev/md127

เราเห็นว่าควรจะประกอบจาก 4 แผ่น แต่ประกอบจากสองแผ่น /dev/sda1 и /dev/sdc1น่าจะเป็นหมายเลข 2 และ 4 ในระบบ เราถือว่ามาจาก /dev/sda2 и /dev/sdc2 คุณยังสามารถรวบรวมอาร์เรย์ได้ ยังไม่ชัดเจนว่าเหตุใดจึงไม่มีข้อมูลเมตา แต่นี่เป็นความรู้สึกผิดชอบชั่วดีของผู้ดูแลระบบซึ่งอยู่ที่ไหนสักแห่งในกัว เราคิดว่าควรมี RAID10 แม้ว่าจะมีตัวเลือกต่างๆ ก็ตาม เรารวบรวม:

$ mdadm --create --verbose /dev/md0 --assume-clean --level=10 --raid-devices=4 missing /dev/sda2 missing /dev/sdc2

เราดูที่ blkid, pvs, lvs เราพบว่าเราได้รวบรวมปริมาณทางกายภาพที่เราขาดไปก่อนหน้านี้

lvroot ได้รับการซ่อมแซมทันที เราติดตั้ง แต่เปิดใช้งาน VG ก่อน:

$ vgchange -a y
$ mkdir /mnt/lvroot && mount /dev/mapper/vg_c6m1-lv_root /mnt/lvroot 

และทุกอย่างก็อยู่ที่นั่น รวมถึงคีย์ในรูทโฮมไดเร็กทอรี - /root/sweet

3. เรายังคงพยายามฟื้นฟูเซิร์ฟเวอร์ของเราเพื่อให้เริ่มต้นได้ตามปกติ โลจิคัลวอลุ่มทั้งหมดจากเรา /dev/md0 (ที่เราพบทุกอย่าง) ลากไป /dev/sdb2โดยที่เซิร์ฟเวอร์ทั้งหมดทำงานในตอนแรก

$ pvmove /dev/md0 /dev/sdb2
$ vgreduce vg_c6m1 /dev/md0

เราปิดเซิร์ฟเวอร์ ลบดิสก์ 1 และ 3 เหลืออันที่สอง บูตจาก Live CD/DVD เข้าสู่ Rescue ค้นหาพาร์ติชันสำหรับเริ่มระบบและกู้คืน bootloader ในด้วง:

root (hd0,0)
setup (hd0)

เราฉีกดิสก์สำหรับบูตและโหลดได้สำเร็จ แต่ไซต์ใช้งานไม่ได้

4. มีสองตัวเลือกในการเปิดเว็บไซต์: กำหนดค่า Apache ตั้งแต่เริ่มต้น หรือใช้ nginx กับ php-fpm ที่กำหนดค่าไว้ล่วงหน้าแล้ว:

$ /etc/init.d/nginx start
$ /etc/init.d/php-fpm start

สุดท้ายคุณต้องเริ่ม MySQL:

$ /etc/init.d/mysqld start

มันจะไม่เริ่ม และคำตอบก็อยู่ในนั้น /var/log/mysql. ทันทีที่คุณแก้ไขปัญหาด้วย MySQL ไซต์จะทำงานได้ ในหน้าหลักจะมีรหัส - RichardGCCMatthewGNUStallman! ตอนนี้เราสามารถเข้าถึง 1C ได้แล้ว และพนักงานก็จะสามารถรับเงินเดือนได้ และเช่นเคย คุณมีงานอีกมากที่รออยู่ข้างหน้าเพื่อสร้างโครงสร้างพื้นฐานและการรักษาความปลอดภัยในบริษัท

นอกจากนี้เรายังสามารถแบ่งปันรายชื่อหนังสือที่ช่วยเราและผู้เข้าร่วมเตรียมตัวสำหรับเกมได้อีกครั้ง: linux.mail.ru/books.

ขอบคุณที่อยู่กับเรา! โปรดติดตามประกาศของเกมต่อไป!

ที่มา: will.com

เพิ่มความคิดเห็น