Hướng dẫn cac level trong linux - cac cấp trong linux

  • Techblog
  • Development

Hướng dẫn cac level trong linux - cac cấp trong linux

Quá trình Boot và các Runlevels trong Linux

1) System Startup

Đây là bước đầu tiên của quá trình khởi động, ở bước này BIOS thực hiện 1 công việc gọi là POST ( Power-on Self-test ). POST là quá trình kiểm tra tính sẵn sàng phần cứng nhằm kiểm tra thông số và trạng thái của các phần cứng máy tính như bộ nhớ, CPU, thiết bị lưu trữ, card mạng,... Nếu quá trình POST kết thúc thành công, BIOS sẽ cố gắng tìm kiếm và boot 1 hệ điều hành được chứa trong các thiết bị lưu trữ như ổ cứng, CD/DVD, USB.

Thông thường BIOS sẽ kiểm tra ổ đĩa mềm hoặc CD-ROM xem có thể khởi động từ chúng được không, rồi đến phần cứng. Thứ tự của việc kiểm tra các ổ đĩa phụ thuộc vào các cấu hình trong BIOS.

Nếu BIOS không tìm thấy boot device thì sẽ cảnh báo No boot device found.

Nếu hệ điều hành Linux được cài đặt trên đĩa cứng thì sẽ tìm đến Master Boot Record (MBR) tại sector đầu tiên của ổ cứng đầu tiên.hệ điều hành Linux được cài đặt trên đĩa cứng thì sẽ tìm đến Master Boot Record (MBR) tại sector đầu tiên của ổ cứng đầu tiên.

2) MBR Loading

MBR (Master Boot Record) được lưu trữ tại sector đầu tiên của 1 thiết bị lưu trữ dữ liệu, vd /dev/hda hoặc /dev/sda.

MBR rất nhỏ, chỉ 512 byte.

MBR chứa thông tin:

Primary boot loader code (446 byte): cung cấp thông tin boot loader và vị trí boot loader trên ổ cứng.

Partition table information (64 byte): lưu trữ thông tin các partition.

Magic number (2 byte): được sử dụng để kiểm tra MBR, nếu MBR bị lỗi thì nó sẽ khôi phục lại.

3) GRUB Loader

Sau khi xác định vị trí Boot Loader , bước này sẽ thực hiện load Boot Loader vào bộ nhớ và đọc thông tin cấu hình sau đó hiển thị GRUB boot menu để user lựa chọn. Nếu user không chọn OS thì sau khoảng thời gian được định sẵn, GRUB sẽ load kernel default vào memory để khởi động.

Đối với các hệ thống sử dụng EFI/UEFI , các firmware UEFI sẽ đọc dữ liệu Boot Manager để tìm các ứng dụng UEFI. Firmware sẽ chạy ứng dụng UEFI.

4) Kernel

Kernel của hệ điều hành sẽ được nạp vào trong RAM . Khi kernel hoạt động thì việc đầu tiên đó là thực thi quá trình INIT.

5) Runlevels (INIT)

Đây là giai đoạn chính của quá trình boot . Quá trình này bắt đầu bằng việc đọc file/etc/inittab:

Runlevel 0: halt - tắt hệ thống

Runlevel 1: single-user mode - không cấu hình network, khởi động các tiến trình và cho phép đăng nhập user non-root

Runlevel 2: multi-user mode - không cấu hình network, khởi động các tiến trình

Runlevel 3: multi-user mode with networking - khởi động hệ thống bình thường trên giao diện dòng lệnh

Runlevel 4: undefined

Runlevel 5: X11 - khởi động hệ thống trên giao diện đồ họa

Runlevel 6: reboot - khởi động lại hệ thống

6) User Prompt

Người dùng đăng nhập và sử dụng

Thiết lập chế độ khởi động mặc định

Multi-user.target (INIT 3): Chế đô dòng lệnh Command Mode (non-graphics). User chỉ sử dụng các lệnh (command) để thao tác. Ở chế độ này Server dùng rất ít RAM.

Graphical.target (INIT 5): Chế độ GUI, mặc định khi install OS ở chế độ GNOME là ta đang sử dụng Graphical.target

Các lệnh thiết lập:

Thiết lập Multi-user.target mặc định khi khởi động:

# systemctl set-default multi-user.target

Thiết lập Graphical.target mặc định khi khởi động:

# systemctl set-default graphical.target

Kiểm tra chế độ mặc định khi khởi động hiện tại:

# systemctl get default

Chuyển đổi tạm thời từ graphical -> multi-user:

# systemctl isolate multi-user.target

hoặc

# init 3

Chuyển đổi tạm thời từ multi-user -> graphical:

# systemctl isolate graphical.target

hoặc

# init 3

Chuyển đổi tạm thời từ multi-user -> graphical:

# systemctl isolate graphical.target là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.

# init 5

Theo BizFly Cloudtại đây.

BizFly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.Manage.bizflycloud

Hướng dẫn cac level trong linux - cac cấp trong linux

Bài viết này sẽ Giới Thiệu Về Init System Và Run Level. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về  hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php.Giới Thiệu Về Init System Và Run Level. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về  hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php.

Đối với các SysAdmin, SysEngineer, DevOps thì việc quản trị các dịch vụ như web, mail, application, database… là những công việc quen thuộc. Mối quan tâm chính của người quản trị khi làm việc với các dịch vụ này là:

  • Đảm bảo các dịch vụ này luôn chạy.
  • Cần phải có một cách để tự động start các dịch vụ này lên khi bị crash hoặc khi reboot server.

Có khá nhiều cách để làm được việc này, chẳng hạn như viết script check services còn sống hay không. Hoặc sử dụng một phần mềm monitor trạng thái các dịch vụ là monit, supervisor…

Hướng dẫn cac level trong linux - cac cấp trong linux

Trong bài viết này, mình sẽ hướng dẫn các bạn sử dụng các init system sẵn có của Linux để quản lý các dịch vụ, tiến trình tự động reboot khi gặp sự cố.

Trên các hệ điều hành Linux, tùy thuộc vào phiên bản, distro mà sử dụng các init system khác nhau, bạn có thể tham khảo một số init system mặc định được các hệ điều hành linux sử dụng bên dưới:

System V

System V (đọc là System Five) được phát triển bởi AT&T và được ra mắt lần đầu tiên vào năm 1983, do khá cổ và còn nhiều điểm không hoàn thiện nên SysV đang dần được thay thế bởi các Init System khác (đọc là System Five) được phát triển bởi AT&T và được ra mắt lần đầu tiên vào năm 1983, do khá cổ và còn nhiều điểm không hoàn thiện nên SysV đang dần được thay thế bởi các Init System khác

Một số Linux OS sử dụng System V:

  • Debian 6 và trước nữa
  • Ubuntu 9.04 và trước đó nữa
  • CentOS 5 trở về trước

Upstart

Upstart là một init system được phát triển bởi những người đã tạo nên Ubuntu nhằm thay thế cho SysV trên các distro Ubuntu. Upstart có nhiệm vụ khởi chạy các tiến trình và tác vụ khác nhau, kiểm tra các process đang hoạt động và stop những process này khi shutdown hệ thống. là một init system được phát triển bởi những người đã tạo nên Ubuntu nhằm thay thế cho SysV trên các distro Ubuntu. Upstart có nhiệm vụ khởi chạy các tiến trình và tác vụ khác nhau, kiểm tra các process đang hoạt động và stop những process này khi shutdown hệ thống.

Homepage: http://upstart.ubuntu.com/index.html

Một số distro hỗ trợ Upstart (đa phần là Ubuntu vì Upstart vốn được phát triển cho riêng Ubuntu)

  • Từ Ubuntu 9.10 tới Ubuntu 14.04, 14.10
  • CentOS 6

Systemd

Systemd là init system tiêu chuẩn (de facto) cho các distro được release gần đây như CentOS 7, Ubuntu 16, 18… là init system tiêu chuẩn (de facto) cho các distro được release gần đây như CentOS 7, Ubuntu 16, 18…

Systemd là một init system quản lý các tiến trình trên Linux, chữ ‘d’ ở cuối có nghĩa là trình daemon. Tương tự như init, systemd là process của tất cả các process khác trong một hệ thống Linux, systemd là process đầu tiên được start lên khi boot và có PID là 1.‘d’ ở cuối có nghĩa là trình daemon. Tương tự như init, systemd là process của tất cả các process khác trong một hệ thống Linux, systemd là process đầu tiên được start lên khi boot và có PID là 1.

Systemd được thiết kế khắc phục những khuyết điểm của init. Ví dụ như một tiến trình của init sẽ khởi động tuần tự, từng tiến trình một sẽ được start lên và đưa vô bộ nhớ. Do hoạt động theo cơ chế này nên thời gian boot hệ thống sẽ rất lâu. Trái ngược với init, systemd được thiết kế để khởi động tác tác vụ song song, vì vậy giảm thiểu được boot time và tài nguyên tính toán. Ngoài ra, systemd còn có nhiều tính năng hơn so với init, cụ thể như: được thiết kế khắc phục những khuyết điểm của init. Ví dụ như một tiến trình của init sẽ khởi động tuần tự, từng tiến trình một sẽ được start lên và đưa vô bộ nhớ. Do hoạt động theo cơ chế này nên thời gian boot hệ thống sẽ rất lâu. Trái ngược với init, systemd được thiết kế để khởi động tác tác vụ song song, vì vậy giảm thiểu được boot time và tài nguyên tính toán. Ngoài ra, systemd còn có nhiều tính năng hơn so với init, cụ thể như:

  • Khả năng xử lý các tiến trình song song.
  • Dùng socker và D-Bus để khởi chạy các dịch vụ.
  • Khởi tạo các trình daemon theo nhu cầu, quản lý các process sử dụng Linux cgroups.
  • Hỗ trợ snapshot và restore trạng thái của hệ thống.
  • Có khả năng giữ các mount point và auto mount point.
  • Có cơ chế kiểm soát dependency của service chặt chẽ.

Lệnh systemctl là công cụ chính dùng để quản lý systemd. Lệnh này kết hợp cả 2 lệnh service và chkconfig thành 1 tool duy nhất để có thể quản lý hiệu quả các dịch vụ trên hệ thống.systemctl là công cụ chính dùng để quản lý systemd. Lệnh này kết hợp cả 2 lệnh servicechkconfig thành 1 tool duy nhất để có thể quản lý hiệu quả các dịch vụ trên hệ thống.

Hướng dẫn kiểm tra init system của hệ thống

Để biết hệ thống của mình hiện đang hỗ trợ những init system nào, ta có 2 cách:

Cách 1

Kiểm tra xem các folder sau có tồn tại không:

  • Nếu có /usr/lib/systemd thì hệ thống có hỗ trợ Systemd/usr/lib/systemd thì hệ thống có hỗ trợ Systemd
  • Nếu có /usr/share/upstart thì hệ thống có hỗ trợ Upstart/usr/share/upstart thì hệ thống có hỗ trợ Upstart
  • Nếu có /etc/init.d thì hệ thống có hỗ trợ System V/etc/init.d thì hệ thống có hỗ trợ System V

Cách 2

Vì init process luôn có PID là 1, ta có thể dùng lệnh sau để kiểm tra hệ thống của mình đang dùng init system nào chính:PID là 1, ta có thể dùng lệnh sau để kiểm tra hệ thống của mình đang dùng init system nào chính:

Đây là những init system cho phép hệ thống theo dõi và auto-start lại các dịch vụ bị crash.

Giới thiệu về Runlevel

Để hiểu một chút về cơ chế hoạt động của chúng thì ta cần phải nắm được kiến thức về các runlevel cơ bản trong Linux.

Runlevel là biểu thị một trạng thái trong Linux, mỗi runlevel sẽ biểu thị cho một trạng thái riêng của Linux server như shutdown, single-user mode, restart mode, mỗi một con số sẽ biểu thị một runlevel riêng là biểu thị một trạng thái trong Linux, mỗi runlevel sẽ biểu thị cho một trạng thái riêng của Linux server như shutdown, single-user mode, restart mode, mỗi một con số sẽ biểu thị một runlevel riêng

Các số runlevel này chạy từ 0 tới 6 và có ý nghĩa như sau:

  • Runlevel 0: Shutdown hệ thống Shutdown hệ thống
  • Runlevel 1: Chế độ rescue mode, 1 user Chế độ rescue mode, 1 user
  • Runlevels 2, 3, 4: Chế độ nhiều user, có kết nối mạng, giao diện CLI Chế độ nhiều user, có kết nối mạng, giao diện CLI
  • Runlevel 5: Chế độ nhiều user, có kết nối mạng, giao diện đồ họa GUI. Chế độ nhiều user, có kết nối mạng, giao diện đồ họa GUI.
  • Runlevel 6: Reboot hệ thống Reboot hệ thống

Để kiểm tra runlevel đang chạy, ta dùng lệnh runlevel hoặc #who -r# who -r

Còn đối với những hệ thống có hỗ trợ systemd thì ta có thể dùng lệnh # systemctl get-default# systemctl get-default

THAM KHẢO CÁC DỊCH VỤ TẠI VINAHOST:

>> SERVER – COLOCATION – CDNSERVERCOLOCATION – CDN

>> CLOUD – VPS

>> HOSTING

>> EMAIL

>> WEBSITE

>> TÊN MIỀN

>> SSLSSL

Was this article helpful?