คำถามติดแท็ก linux-kernel

คำถามเกี่ยวกับ Linux kernel และ Linux kernel หัวข้อที่เกี่ยวข้องเช่น รายละเอียดการนำไปใช้เช่นการเรียกใช้ระบบการปรับแต่งเคอร์เนล ฯลฯ สำหรับหัวข้อพื้นที่ผู้ใช้ Linux ซึ่งไม่เกี่ยวข้องกับรายละเอียดเคอร์เนล [linux] หรือแท็กการกระจายจะเหมาะสมกว่า

2
เป็นไปได้ที่จะเห็นการตายที่ประสบความสำเร็จ?
ในman psมันชัดเจนว่ารัฐต่าง ๆ กระบวนการสามารถมีบน Linux D Uninterruptible sleep (usually IO) R Running or runnable (on run queue) S Interruptible sleep (waiting for an event to complete) T Stopped, either by a job control signal or because it is being traced. W paging (not valid since the 2.6.xx kernel) X dead …

2
เซิร์ฟเวอร์ Linux อัพเดทเคอร์เนลอย่างไรโดยไม่ต้องบูตเครื่องใหม่
ตามข้อมูลของฉันการอัพเกรดเคอร์เนล linux ต้องทำการรีบูต การรีบูตคอมพิวเตอร์ที่บ้านไม่ใช่ปัญหา แต่ฉันไม่คิดว่ามันเป็นสิ่งเดียวกันสำหรับเซิร์ฟเวอร์ เซิร์ฟเวอร์ที่ใช้ลีนุกซ์รุ่นบูทรีบูตหลังจากอัพเกรดเคอร์เนลหรือว่าพวกมันใช้กลอุบายบางอย่างเพื่อหลีกเลี่ยงการบูท ??

3
สิ่งที่ป้องกันไม่ให้การกระจายใช้เคอร์เนล Linux ล่าสุด [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว Linux ดิสทริบิวชันส่วนใหญ่มาพร้อมกับเคอร์เนลเวอร์ชันที่แน่นอนและอัปเดตเฉพาะในรุ่นที่วางจำหน่าย ( x.y.zถึงx.y.(z+1)) และสำหรับการปรับปรุงความปลอดภัย ในอีกด้านฉันรู้ว่า Linux มีนโยบายที่เข้มงวดมากเกี่ยวกับการไม่เปลี่ยนเคอร์เนล ABI และไม่ทำลายพื้นที่ผู้ใช้ ในความเป็นจริง Linus มีความโกรธเคืองสาธารณะจำนวนมากกำกับที่นักพัฒนาที่ต้องการเปลี่ยน (โดยเจตนาหรือไม่ตั้งใจ) เคอร์เนลเป็นวิธีที่เข้ากันไม่ได้ย้อนหลัง ฉันไม่เข้าใจว่าทำไมการกระจายใช้เคอร์เนล "เสถียร" แทนที่จะอัปเดตเป็นเคอร์เนลล่าสุดเสมอ นี่ไม่ใช่การวิจารณ์ฉันแค่อยากรู้อยากเห็นเกี่ยวกับเหตุผล


1
ทำไมเคอร์เนล Linux Debian 9 (ยืด) ของฉันไม่ได้รับการอัพเกรดหลังจาก 'apt install'
ผมใช้เวลาส่วนที่ดีของเดือนพยายามที่จะติดตั้งติดตั้งลบด้วยตนเองและติดตั้งลินุกซ์ใหม่ล่าสุดภาพ 4.9.0-8 (หรือมัน) บนของฉันDebian 9 (ยืด) แต่มันจะเสมอ (อีกครั้ง) บูต ไปเป็นรุ่นที่ผิดของ Linux 3.16.0-5 ฉันยังลบ/bootเนื้อหาไดเรกทอรีทั้งหมดและติดตั้งใหม่ ฉันมีการติดตั้ง Debian 9 มาตรฐานลงใน/dev/sdaไดรฟ์ซึ่ง/dev/sda1เป็น/bootพาร์ติชันแบบสแตนด์อโลน รายการตรวจสอบของฉัน: ตรวจสอบDebian บริหารคู่มือ ไม่มี UEFI bootloader ในฮาร์ดแวร์ ปิดตัวเลือก imageramfs ใน /etc/kernel-img.conf ไม่มีโมดูลเคอร์เนลแฟนซี (ไม่ใช่แม้แต่ NVIDIA หรือ ATI) ใช้อย่างถูกต้องaptแทนapt-get นั่นคือระบบจิ๊กซอว์เดียวที่นี่ที่ฉันเจอ ไดเรกทอรีล่าสุด/bootคือ: $ ls -lat /boot total 106000 drwxr-xr-x 23 root root 4096 Jan 17 12:25 …

1
เคอร์เนลส่วนหัวของคุณสำหรับเคอร์เนล 3.10.0-229.el7.x86_64 ไม่พบ
เมื่อฉันพิมพ์คำสั่งservice vboxdrv setupในเทอร์มินัล CentOS 7 ของฉันฉันได้รับข้อผิดพลาดต่อไปนี้: Your kernel headers for kernel 3.10.0-229.el7.x86_64 cannot be found ฉันจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร? เมื่อฉันเปิดล็อกไฟล์โดยพิมพ์vi /var/log/vbox-install.logเนื้อหาคือ: Uninstalling modules from DKMS removing old DKMS module vboxhost version 5.0.4 ------------------------------ Deleting module version: 5.0.4 completely from the DKMS tree. ------------------------------ Done. Attempting to install using DKMS Creating symlink /var/lib/dkms/vboxhost/5.0.4/source -> …

3
เมื่อกระบวนการใดคัดลอกหน่วยความจำเสมือนหรือหน่วยความจำในเครื่อง
วิธีมาตรฐานในการสร้างกระบวนการใหม่ใน Linux คือ footprint หน่วยความจำของกระบวนการหลักถูกคัดลอกและกลายเป็นสภาพแวดล้อมของกระบวนการลูกจนกว่าexecvจะมีการเรียกใช้ สิ่งที่เรากำลังพูดถึงรอยเท้าหน่วยความจำเสมือน (สิ่งที่กระบวนการร้องขอ) หรือคนที่อาศัยอยู่ (สิ่งที่ใช้จริง)? แรงจูงใจ: ฉันมีอุปกรณ์ที่มีพื้นที่สว็อป จำกัด และแอปพลิเคชันที่มีความแตกต่างอย่างมากระหว่างพื้นที่หน่วยความจำเสมือนและที่อยู่อาศัย แอปพลิเคชันไม่สามารถแยกได้เนื่องจากหน่วยความจำไม่เพียงพอและต้องการดูว่าการพยายามลดขนาดรอยเท้าเสมือนจริงจะช่วยได้หรือไม่

3
วิธีการตั้งค่าการปรับ OOM killer สำหรับ daemons อย่างถาวร
ใช้เซิร์ฟเวอร์ Linux บางตัวที่มี daemons บริการระบบเพียงครั้งเดียวหรือเพียงไม่กี่ตัวฉันต้องการปรับ OOM killer สำหรับกระบวนการ daemonized เหล่านั้นในกรณีที่มีสิ่งผิดปกติเกิดขึ้น ตัวอย่างเช่นวันนี้เซิร์ฟเวอร์ Ubuntu บางตัวที่ใช้งาน MySQL ได้ถูกทำลายไปแล้วเพราะมีapt-checkerกระบวนการมากมายที่ต้องใช้หน่วยความจำทั้งหมดและเคอร์เนลคิดว่าเป็นความคิดที่ดีที่จะฆ่า MySQL ฉันรู้ว่าฉันสามารถปรับคะแนนโดยใช้/proc/$(pidof mysqld)/oom_score_adjไฟล์เพื่อให้เคอร์เนลเบาะแสบางอย่างที่ฉันไม่ต้องการให้ MySQL ถูกฆ่า แต่นั่นก็ไม่รอดการรีสตาร์ทบริการ ฉันควรแก้ไขสคริปต์ init / upstart จากแพ็คเกจเพื่อรวมการปรับเปลี่ยนเหล่านี้หรือไม่ ฉันไม่คิดว่ามันเป็นทางออกที่หรูหรามากเพราะฉันจะทำการปรับเปลี่ยนไฟล์ที่เป็นของแพ็คเกจ เป็นไปได้ไหมที่จะขอใช้งานสคริปต์เริ่มต้น / เริ่มต้นโดยทั่วไปและปรับตามเงื่อนไข หรือคุณอยากแนะนำให้ใช้สคริปต์ที่ไม่มีกำหนดเช่นนี้while true{ adjust_oom(); sleep 60;}?

1
คำเตือนของ CPU - abrt-watch-log
ฉันใช้Red Hat Enterprise Linux Server รีลีส 7.1 (Maipo)บนIntel (R) Xeon (R) CPU X5690 @ 3.47GHz ฉันได้รับข้อผิดพลาดนี้abrt-watch-logต่อไป root 888 1 0 Aug03 ? 00:00:00 /usr/bin/abrt-watch-log -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detected ernel BUG at list_del corruption list_add corruption do_IRQ: stack overflow: ear stack overflow (cur: eneral …

1
การเปลี่ยนค่า TCP RTO ใน Linux
ฉันต้องการเปลี่ยนค่า TCP RTO (retransmission timeout)สำหรับการเชื่อมต่อและการอ่านบางอย่างที่ฉันทำเสร็จแล้วแสดงให้เห็นว่าฉันสามารถทำได้ แต่ไม่เปิดเผยที่และวิธีการเปลี่ยน ฉันดู/proc/sys/net/ipv4ตัวแปรแล้ว แต่ไม่มีตัวแปรใดที่เกี่ยวข้องกับ RTO ฉันจะขอบคุณถ้ามีคนบอกฉันว่าจะแก้ไขค่านี้ได้อย่างไร

4
cp vs. cat เพื่อคัดลอกไฟล์
cp a bและcat a > bอะไรคือความแตกต่าง? ในสคริปต์การติดตั้ง x86 ของซอร์สต้นไม้ของ linux kernel ( arch/x86/boot/install.sh) จะใช้ทั้งคู่: cat $2 > $4/vmlinuz cp $3 $4/System.map เหตุใดพวกเขาจึงไม่คงรูปแบบเดียวกันหากดีกว่าอีกรูปแบบหนึ่ง

4
ข้อผิดพลาดดิสก์เงียบและความน่าเชื่อถือของการแลกเปลี่ยน Linux
ความเข้าใจของฉันคือฮาร์ดไดรฟ์และ SSD ใช้การแก้ไขข้อผิดพลาดพื้นฐานภายในไดรฟ์และการกำหนดค่า RAID ส่วนใหญ่เช่น mdadm จะขึ้นอยู่กับสิ่งนี้เพื่อตัดสินใจว่าเมื่อใดที่ไดรฟ์ล้มเหลวในการแก้ไขข้อผิดพลาดและจำเป็นต้องออฟไลน์ อย่างไรก็ตามขึ้นอยู่กับการจัดเก็บที่ถูกต้อง 100% ในการวิเคราะห์ข้อผิดพลาด ไม่เช่นนั้นและการกำหนดค่าทั่วไปเช่นมิเรอร์ RAID-1 แบบสองไดรฟ์จะมีความเสี่ยง: สมมติว่าบิตบางส่วนบนไดรฟ์หนึ่งเสียหายอย่างเงียบ ๆ และไดรฟ์ไม่รายงานข้อผิดพลาดการอ่าน ดังนั้นระบบไฟล์เช่น btrfs และ ZFS จะใช้เช็คซัมของตัวเองเพื่อที่จะไม่ไว้วางใจเฟิร์มแวร์ของรถบั๊กกี้สายเคเบิลที่มีความผิดพลาดของสาย SATA และอื่น ๆ ในทำนองเดียวกัน RAM ยังมีปัญหาความน่าเชื่อถือและทำให้เรามี ECC RAM เพื่อแก้ไขปัญหานี้ คำถามของฉันคือสิ่งที่เป็นวิธีที่บัญญัติในการป้องกันไฟล์ swap Linux จากความเสียหายเงียบ / บิตเน่าไม่ได้จับโดยเฟิร์มแวร์ไดรฟ์ในการกำหนดค่าสองดิสก์ (เช่นการใช้ไดรเวอร์เคอร์เนล mainline)? สำหรับฉันแล้วดูเหมือนว่าการกำหนดค่าที่ไม่มีการป้องกันแบบครบวงจรที่นี่ (เช่นที่จัดทำโดย btrfs) จะลบล้างความสงบของจิตใจที่นำมาจาก ECC RAM แต่ฉันไม่สามารถคิดวิธีที่ดี: btrfs ไม่รองรับ swapfiles เลย คุณสามารถตั้งค่าอุปกรณ์ลูปจากไฟล์ …

1
ตารางเส้นทางจะถูกเก็บไว้ภายในในเคอร์เนล Linux ที่ไหน?
เมื่อผมดำเนินการroute -nจากที่ว่า (จากการที่structs) เป็นข้อมูลที่แสดงดึง? ฉันพยายามดำเนินการstrace route -nแต่ฉันไม่ได้ช่วยฉันหาสถานที่ที่เหมาะสมซึ่งเก็บไว้

3
mptscsih: ioc0: task abort: SUCCESS (rv = 2002) ทำให้เกิดการแช่แข็ง 30 วินาที
I / O ของซอฟต์แวร์ RAID6 มักค้างประมาณ 30 วินาทีหลังจากนั้นทุกอย่างกลับสู่ปกติ หลังจากการแช่แข็งสิ้นสุดลงสิ่งนี้จะถูกใส่ลงใน syslog: Mar 14 18:43:57 server kernel: [35649.816060] sd 5:0:23:0: [sdy] CDB: Read(10): 28 00 6c 52 68 58 00 04 00 00 Mar 14 18:43:58 server kernel: [35651.149020] mptbase: ioc0: LogInfo(0x31140000): Originator={PL}, Code={IO Executed}, SubCode(0x0000) cb_idx mptscsih_io_done Mar 14 18:43:58 server …

2
จะทำให้ SysRq ทำงานบนแล็ปท็อปได้อย่างไร
My /proc/sys/kernel/sysrqมีหมายเลข 502 แต่ Alt + SysRq + ... ดูเหมือนจะไม่ทำงานบนแล็ปท็อป HP Pavilion ของฉัน ฉันจะแก้ไขได้อย่างไร อัปเดต 1: ยังไงก็ตาม: ทั้งหน้าจอพิมพ์ของฉันและรหัสอื่น ๆ ไม่มีป้ายกำกับเพิ่มเติมเช่น "SysRq" อัปเดต 2: รุ่นฮาร์ดแวร์: HP Pavilion 17 Notebook PC รูปแบบแป้นพิมพ์: เยอรมัน, QWERTZ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.