لینوکس و شبکه

لینوکس و شبکه
طبقه بندی موضوعی
آخرین مطالب
  • ۹۹/۱۱/۱۳
    java

۲۲ مطلب با موضوع «Hardware/Bootable» ثبت شده است

۱۸
اسفند

گرفتن شل در یک لینوکس از طریق گراب:

 

 

 

grub page> press e
grub page> linux /boot/vmlinuz-4.8.0 root=/dev/sda7 ro init=/bin/bash
grub page> ctrl+x
bash
mount -rw -o remounr /
  • behrooz mohamadi nsasab
۱۴
دی

Check the number of attached disks

# cat /proc/scsi/scsi | egrep -i 'Host:' | wc -l
7

verify Using /sys class file

(- - -)

$ echo "- - -" >  /sys/class/scsi_host/host0/scan
#("- - -") of the command act as wildcards meaning rescan everything​​

(c t l)

$ echo "c t l" >  /sys/class/scsi_host/hosth/scan 
# h is the HBA number
# c is the channel on the HBA
# t is the SCSI target ID
# l is the LUN.

#If you don't have the host bus number, you must list all the existing host bus number on your system with the command

$ ls /sys/class/scsi_host
host0 host1 host2

$ echo "- - -" > /sys/class/scsi_host/host0/scan
$ echo "- - -" > /sys/class/scsi_host/host1/scan
$ echo "- - -" > /sys/class/scsi_host/host2/scan

<OR>

# for host in `ls /sys/class/scsi_host/`;do
 echo "- - -" >/sys/class/scsi_host/${host}/scan;
done

 

 

URL

 

 

 

 

  • behrooz mohamadi nsasab
۲۶
اسفند

  • modprobe rt2800usb #Load module in kernel
  • modprobe -r rt2800usb #remove module from kernel
  • or  [rmmod rt2800usb] #remove module from kernel
  •  lsmod | grep rt2800 #check is load


Permanent load modules:

vim /etc/modules-load.d/rt2800usb.conf

  • rt2800usb #add this line
Check if systemd service loaded the module:

  • systemctl status systemd-modules-load.service

The output should look like this:


systemd-modules-load.service - Load Kernel Modules
  Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
  Active: active (exited) since Wed, 03 Apr 2013 22:50:57 +0000; 46s ago
        Docs: man:systemd-modules-load.service(8)
              man:modules-load.d(5)
 Process: 260 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)

  if status=1/FAILURE

 journalctl -b

URL

  • behrooz mohamadi nsasab
۱۰
بهمن

یک تجربه: در دبیان ۹ برای اینکه firmware کارت شبکه یو اس بی رو بشناسانیم از روش زیر استفاده میکنیم



add to /etc/apt/source.list
deb http://ftp.fr.debian.org/debian jessie main contrib non-free
deb http://httpredir.debian.org/debian/ stretch main contrib non-free

sudo apt-get install debian-reference
apt-get update && apt-get install firmware-iwlwifi
sudo apt-get update && apt-get install firmware-iwlwifi
sudo apt-get update && sudo apt-get install firmware-iwlwifi
sudo apt-get install modplug-tools 
sudo apt-get install modprobe
sudo apt-get install modprob
sudo apt-get install kmod
sudo apt-get install wicd
sudo  apt-get install firmware-realtek
sudo  apt-get install firmware-iwlwifi 
sudo  apt-get install firmware-linux
sudo  apt-get install amd64-microcode firmware-linux-nonfree firmware-misc-nonfree

  • behrooz mohamadi nsasab
۲۴
خرداد
بادستور زیر می‌توان سرعت خواند و نوشتن از دیسک را فهیمد:
echo -e "WRITE:";
dd if=/dev/zero of=/tmp/output count=1 bs=100M ;
rm -f /tmp/output;
 echo -e "\nREAD";
sudo hdparm -t /dev/sda

  • behrooz mohamadi nsasab
۱۰
ارديبهشت

ترتیب خوانده شدن فایل های کانفیگی در  دبیان 9:


20180430-155851-Profile:begin (اجرا در اول)

20180430-155851-profile:End (اجرا در دومین مرحله)

20180430-155915-bashrc:begin (اجرا در سومین مرحله)

20180430-155915-bash_alias:begin (اجرا در چهارمین مرحله)

20180430-155915-bash_alias:End (اجرا در پنجمین مرحله)

20180430-155915-bashrc:end (اجرا در ششمین مرحله)

  • behrooz mohamadi nsasab
۰۹
ارديبهشت

مقایسه میزان رم با استفاده از دو دستور:   free -m  و cat /proc/meminfo




/proc/meminfo(KB) free -k Status
MemTotal 4040208 4040208 Equal
MemFree 518032 518016 Equal
MemAvailable 1582984 1582968 Equal
used
2116340 Total – (free + cache + buffer)
Buffers 94508 1405852 Equal
Cached 1218532
SwapTotal 9867260 9867260 Equal
SwapFree 9867260 9867260 Equal
swap used
0
Shmem 91388 91388 Equal
  • behrooz mohamadi nsasab
۱۴
اسفند

1-cat /proc/cpuinfo

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 69
model name	: Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
stepping	: 1
microcode	: 0x1c
cpu MHz		: 1700.062
cache size	: 3072 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 2
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
bugs		:
bogomips	: 4788.92
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:
......

2- lscpu

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 69
Model name:            Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
Stepping:              1
CPU MHz:               1303.687
CPU max MHz:           2700.0000
CPU min MHz:           800.0000
BogoMIPS:              4788.92
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts

3- cpuid

CPU 0:
vendor_id = "GenuineIntel"
version information (1/eax):
processor type  = primary processor (0)
family          = Intel Pentium Pro/II/III/Celeron/Core/Core 2/Atom, AMD Athlon/Duron, Cyrix M2, VIA C3 (6)
model           = 0x5 (5)
stepping id     = 0x1 (1)
extended family = 0x0 (0)
extended model  = 0x4 (4)
(simple synth)  = Intel Mobile Core i3-4000Y / Mobile Core i5-4000Y / Mobile Core i7-4000Y / Mobile Pentium 3500U/3600U/3500Y / Mobile Celeron 2900U (Mobile U/Y) (Haswell), 22nm
miscellaneous (1/ebx):
process local APIC physical ID = 0x0 (0)
cpu count                      = 0x10 (16)
CLFLUSH line size              = 0x8 (8)
brand index                    = 0x0 (0)
brand id = 0x00 (0): unknown
feature information (1/edx):
x87 FPU on chip                        = true
virtual-8086 mode enhancement          = true
debugging extensions                   = true
page size extensions                   = true
time stamp counter                     = true
RDMSR and WRMSR support                = true
physical address extensions            = true
....

4- sudo dmidecode --type processor

# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.
Handle 0x0004, DMI type 4, 42 bytes
Processor Information
Socket Designation: U3E1
Type: Central Processor
Family: Core i5
Manufacturer: Intel(R) Corporation
ID: 51 06 04 00 FF FB EB BF
Signature: Type 0, Family 6, Model 69, Stepping 1
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
.....

5- inxi -C

CPU:       Dual core Intel Core i5-4210U (-HT-MCP-) cache: 3072 KB 
clock speeds: max: 2700 MHz 1: 1958 MHz 2: 1993 MHz 3: 1775 MHz 4: 1714 MHz

6- sudo lshw -C CPU

*-cpu                   
description: CPU
product: Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
vendor: Intel Corp.
physical id: 4
bus info: cpu@0
version: Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
serial: To Be Filled By O.E.M.
slot: U3E1
size: 2626MHz
capacity: 2700MHz
width: 64 bits
clock: 100MHz
capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts cpufreq
configuration: cores=2 enabledcores=2 threads=4

7- hardinfo

8- hwinfo --cpu

01: None 00.0: 10103 CPU                                        
[Created at cpu.460]
Unique ID: rdCR.j8NaKXDZtZ6
Hardware Class: cpu
Arch: X86-64
Vendor: "GenuineIntel"
Model: 6.69.1 "Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz"
Features: fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,mca,cmov,pat,pse36,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,ht,tm,pbe,syscall,nx,pdpe1gb,rdtscp,lm,constant_tsc,arch_perfmon,pebs,bts,rep_good,nopl,xtopology,nonstop_tsc,aperfmperf,eagerfpu,pni,pclmulqdq,dtes64,monitor,ds_cpl,vmx,est,tm2,ssse3,sdbg,fma,cx16,xtpr,pdcm,pcid,sse4_1,sse4_2,movbe,popcnt,tsc_deadline_timer,aes,xsave,avx,f16c,rdrand,lahf_lm,abm,epb,tpr_shadow,vnmi,flexpriority,ept,vpid,fsgsbase,tsc_adjust,bmi1,avx2,smep,bmi2,erms,invpcid,xsaveopt,dtherm,ida,arat,pln,pts
Clock: 2080 MHz
BogoMips: 4788.92
Cache: 3072 kb
Units/Processor: 16
Config Status: cfg=new, avail=yes, need=no, active=unknown
....

9-nproc

10-lspci




  • behrooz mohamadi nsasab
۰۳
اسفند

Write speed benchmark:    dd if=/dev/zero of=/tmp/output count=1 bs=100M ;rm -f /tmp/output

READ speed benchmark: sudo hdparm -t /dev/sda

  • behrooz mohamadi nsasab
۰۳
آذر

ساختار داخلی فایل inittab

فایلی که تنظیم میکند، پردازش ها در کدام Run Level و در چه حالتی اجرا شوند

فرمت داخلی فایل Inittab به شکل زیر است:

ID : RunLevel : Action : Process
ID : نام دلخواه، می بایست بیشتر از یک کاراکتر باشد.
Run Level : پردازش در چه حالتی باشد، اگر خالی بماند به منزله همه Run Level ها می باشد.
Action:
Respown:درصورت توقف مجدداً خودکار start  شود
wait: اجرابشود اما درصورتی که پردازش تمام نشده باشد فعالیتی صورت نگیرد
once: فقط یکبار پردازش اجرا بشود
initDefault: کلمه رزرو شده

حالتCtrl+Alt+Del

مثال: با فشردن کلیدهای ترکیبی Ctrl+Alt+Del عمل ریست صورت میگیرد:

ca : : CtrlAltDel : /sbin/shutdown –t3 –r now

  • behrooz mohamadi nsasab
۰۳
آذر

بهترین راه خاموش کردن سرورهای لینوکس است، زیرا به تمام کاربران Login شده سرور اطلاع رسانی می‌نماید (ارسال و نمایش پیغام)

همچنین از Login  کاربر جدید جلوگیری به عمل آورده و سیگنالی به init  ارسال می‌نماید تا Run Level  تغییر نماید و پس از آن سیگنال دیگری ( سیگنالSIGTERM ) به تمامی Process های Run شده روی سرور ارسال مینماید که  توسط آن مهلت چند ثانیه ای ذخیره اطلاعات Save نشده و آماده سازی برایkill شدن به پردازش ها میدهد..
در نهایت پس از گذشت  مدت زمان مهلت داده شده، در صورتی که هنوز پردازشی باقی مانده باشند، سیگنال kill  شدن بصورت Force  به آن ارسال می‌شود  (سیگنال SIGKILL ) و در این حالت سیستم خاموش خواهد شد.

Switch ها:

  • c- : غیرفعال شدن اثر دستوات Shutdown (درصورت تنظیم موعد خاموش شدن سیستم، آن را کنسل میکند)
  • h- : برای خاموش کردن سیستم
  • k- : فقط برای فرستادن پیغام به تمامی یوزر های فعال
  • r- : برای ریست کردن سیستم


خاموش شدن سیستم بعد از وقفه کوتاه

# shutdown

تغییر حالت Run Level به شماره 0  (shutdown ) بعد از وقفه کوتاه

# shutdown -h

تغییر حالت Run Level به شماره 6  (Restart ) بعد از وقفه کوتاه

# shutdown –r

تغییر حالت Run Level به شماره 6 (Restart ) در لحظه فعلی (هم اکنون)

# shutdown –r now

تغییر حالت Run Level به شماره 6 (Restart )بعد از وقفه دو دقیقه

# shutdown –r 2

تغییر حالت Run Level به شماره 6 (Restart )بعد از وقفه دو دقیقه  همراه با نمایش پیغام (متنComment برای تمامی کاربران Broadcast می گردد.)

# shutdown –r 2 “Comment”

تغییر حالت Run Level به شماره 6 (Restart )دقیقا در زمان 18:23

# shutdown –r 18:23

تغییر حالت Run Level به شماره 6 (Restart )بعد از وقفه 9 ثانیه

# shutdown –r -t 9

تغییر حالت Run Level به شماره 6 (Restart )بعد از وقفه 15 دقیقه

# shutdown -r +15

متوقف نمودن (cancel ) پروسه shutdown ، درصورت تنظیم موعد shutdown آنرا کنسل میکند

# shutdown –c

سایر دستورها

تغییر Run Level به شماره شش(restart نمودن سیستم عامل)

# reboot

تغییر Run Level به شماره صفر(خاموش نمودن سیستم عامل)

# halt

همچنین

# poweroff

خروج از وضعیت Login سیستم و بازگشت به صفحه (خط)Login جهت ورود مجدد

# logout

  • behrooz mohamadi nsasab
۱۴
مهر


با استفاده از دستور init  و telinit میتوان به mode دیگر از وضعیت RunLevel رفت:

برای تغییر حالت به runlevel دلخواه، کافی ست شماره آن Run Level  را جلویinit  یا telinit بنویسید.
تغییر حالت runlevel کنونی به runlevel شماره صفر(خاموش شدن سیستم)

# init 0

همچنین

# telinit 0


اگر در فایل inittab 2 شماره Run Level را تغییر دهید، در این صورت همواره سیستم به Run Level  تنظیم شده بوت خواهد شد.
برای اینکار کافی ست شماره Run Level  را در فایل inittab جایگزین عدد ذیل نمایید(etc/inittab):

id:5:initdefault


  • behrooz mohamadi nsasab
۱۴
مهر
حالت‌های Run Level
سیستم عامل می تواند تنها در هفت حالت زیر باشد که به آنها ران لول می‌گویند:
0. Halt Mode :حالت توقف سیستم
1. single User Mode :حالت خط فرمان یا همان Command Line
2. Debian/Ubuntu Default :تمام شرایط Normal بوده و تنها تفاوت درLoad شدن بدون نمای گرافیکی است
3. RHEL/fedora/suse):Text Mode
4. Free : رزرو شده، خالی
5. RHEL/fedora/suse : Graphical Mode -تمام شرایط Normal بوده و نمای گرافیکی نیز  Load می شود.
6. Reboot


نمایش وضعیت Run level کنونی سیستم
# runlevel
خروجی(به معنی runlevel  شماره 5):
N 5






  • behrooz mohamadi nsasab
۱۴
مهر

از امکانات مهمی که GRUB  ارائه می دهد ارائه رمز عبور، امکان ارسال پارامترهای Boot به کرنل، همچنین انجام اینکار بدون هنگ کردن و بروز مشکل برای فایل‌های تنظیماتی GRUB، امکان Boot   سیستم عامل ویندوز در کنار سیستم عامل لینوکس است. همچنین GRUB  تکنولوژی LBA یا Logical Block Addressing را پشتیبانی می‌کندکه  امکان دستیابی I/O  فایلهای بوت را بصورت ساده مهیا میکند. GRUB توانایی بوت کردن سیستم عامل در شبکه را نیز دارد.
در زمان بروز خطا، LILO بایستی مجددا نصب شود تا بتواند MBR را تعمیر کند،  اماGRUB آن را در حالت خط فرمان درآورده تا بصورت دستی یا خودکار تنظیمات تعمیر بشود.
GRUB دارای پیچیدگی های بیشتری نسبت به LILO است. Grub برای سیستم عامل های مختلف قابل استفاده است اما LILO برای سیستم عامل های محدودی قابل استفاده است.

نکته: قبل از  بالا آمدن سیتم عامل در منوی Grub باز فشردن دکمه `e` میتوان به تنظیمات grub راه یافت.
نکته:در زمان نمایش منوی Grub سیستم عامل پیشفرض بعد از گذشت زمان 10 یا 30 ثانیه بصورت خودکار انتخاب خواهد.


Chan Load
زمانی که Boot Loader های سیستم عاملها یکدیگر را Load کنند، این تعریف معنا پیدا خواهد کرد.




تنظیم پارامترهای اولیه LILO

# /usr/sbin/liloconfig

نصب Grub

# grub-install /dev/sda

تعمیر ونصب مجدد Grub2 درMBR  قراردادن آن در فایل تنظیمات اصلی Grub2 به آدرس زیر 3:

# grub-mkconfig > /boot/grub/grub.cfg

تنظیمات grub2 در مسیرزیر قراردارد.

/boot/grub/grub.cfg

تنظیماتgrub  در مسیرزیر قراردارد.

/boot/grub/menu.lst

تنظیمات LILO در مسیرزیر قراردارد.

/etc/lilo.conf

initrd در مسیر زیر قراردارد

/boot/initrd. . . . img

معرفی پارامترهای تنظیماتی
در تنظیمات Grub ویا در صفحه منوی Grub برخی از پارامترها بصورت زیر میباشد.

Default

این پارامتر سیستم عامل پیشفرض را که پس از گذشت زمان 10 ثانیه می بایست Load بشود را تنظیم میکند.را Load میکندdefault=2 یعنی سیستم عامل دوم در منوی سیستم عامل های Grub 2
نکته: اندیس در Grub1 از صفر شروع می شود، ولی در Grub2 از یک شروع میشود.

splashimage=(hd0,5) /boot/grub/splash.xpm.gz

نمایش عکس زمینه گرافیکی در آدرس تعریف شده (هارد اول، پارتیشن پنجم و آدرس موردنظر )

Splash

عکس پس زمینه

Title

عنوان نمایش گراب

root (hd0,5)

مسیر روت را مشخص مینماید که درکدام پارتیشن است

kernel /boot/vmlinuz-2.6.26.8.125 ro quite

در منوی Grub در لحظه شروع با فشردن F10 کرنل  به آدرس بالا Load خواهد شد.

Quite: بجای نمایش خط ها صفحه گرافیکی نمایش داده شود در لحظه بوت شدن و بالا آمدن کرنل
ro:فقط خواندنی

در آخر این خط اگر کاراکتر عدد1 ویا s  باشد، سیستم عامل در محیط Run level تک کاربره (Single user) Load خواهد شد.

Save default

بخاطر سپردن انتخاب قبل
نکته: در فایل تنظیماتی گراب  اگر تنظیمات گراب را به شکل زیر تغییر دهید سیستم با محیط bash  بالا خواهد آمد:

init=/bin/sh

نکته: در تنظیمات Grub در خطی که با عبارت Vmlinuz یاkernel آغاز میشوداگر ورودی پارامتر Runlevel  را کاراکتر S 1 یا عدد 1 گذارید سیستم در حالت متن فرمان بوت خواهد شد.

  • behrooz mohamadi nsasab
۱۴
مهر

برنامه که بوسیله آن سیستم عامل در حافظه اصلیload شده و به اجرا در می‌آید

.یک boot loader میتواند چندین سیستم عامل را Boot کند.(منظور بطور همزمان نیست)
Boot Loader مسئولیت Load  کردن kernel  و دادن کنترل سیستم به آن را دارد.

پس از بدست گرفتن کنترل سیستم توسط کرنل، سایر قسمتهای باقی مانده سیستم عامل بارگذاری شده وبه اجرا درمی‌آیند.
درحین بوت سیستم، BIOS  قطعه برنامه  Boot Loader  را از داخلMBR به حافظه اصلی (RAM) منتقل می کند.بعد ا ز انتخاب یکی از سیستم عامل های  منوی Boot Loader ، کرنل توسط Boot Loader به داخل RAM منتقل شده و سپس کرنل موجود در Ram نیز برنامه Init را Run میکند و در این هنگام است که کنترل سیستم تحت فرمان کرنل بوده و در هنگام نیاز برنامه Init دیگر برنامه‌ها را به اجرا در خواهد آورد.

سابقه Boot Loader های لینوکس به LILO 1 برمی‌گردد که با ظهور Grub2 نقش LILO کم‌رنگ شد و در  حال حاضر Boot Loader اصلی سیستم عامل لینوکس Grub است.

  • behrooz mohamadi nsasab
۱۴
مهر

Init

مخفف Initialize  بوده و اولین پردازشی است که موجب می شوددیگر پردازش هاLoad  شده تا سیستم عامل  بصورت کامل Load بشود.

در تکنولوژی جدید،  بجای init از systemd  و یا در برخی موارد از upstart استفاده می شود.


Upstart

نسبت به Inti امکانات بیشتری داشته و درآن نواقص Init برطرف شده است.

Init با مشخصه path سرویس ها را start ویا Stop می کند ولی Upstart بر اساس Event (رویداد) سرویس را Start مینماید، همچنین لزوماً نیازمند مسیر نیست. یعنی با یک رویداد (همان event) یک سرویس به اجرا در خواهد آمد.

Upstart بصورت بهینه Dependency ها را تشخیص داده و پیش نیازهای یک سرویس قابل اجرا را قبل تر به اجرا در خواهد آورد.


Systemd(System Deamon)

سرویس ها بر اساس Port (سوکت) شناخته شده و به اجرا درآورده می‌شوند.

این تکنولوژی قابلیت به اجرا درآوردن تمام یا بخشی از یک سرویس را دارد، بطوریکه بخش خاص، یا قسمتی از یک سرویس درخواست داده شده Run بشود.

Systemd هر جزء را (Port ویا Device ویا service و ..) در قالب یک Unit  درنظر میگیرد و میتواند برای هر Unit خاص با UUID منحصر بفرد خود وارد عمل شود.

  • behrooz mohamadi nsasab
۱۴
مهر

Master Boot Record (به فارسی رکورد راه انداز اصلی) قسمتی از حافظه است که وظیفه بالاآوردن(Load) سیستم عامل را (بصورت غیر مستقیم) برعهده داشته و BIOS به صورت مستقیم آن را به اجرا در می آورد.

همچنین می‌توان گفت که برنامه‌ای برای راه اندازی سیستم عامل است که در قسمتی از حافظه (حافظه  ذخیره سازی پارتیشن بندی شده نظیر هارد دیسک،

SSD، فلش درایوها و ...) قرار گرفته و وظیفه حفظ اطلاعات مربوط به پارتیشن‌ها و بالا آوردنKernel (به صورت غیر مستقیم) را بر عهده دارد.

MBR در هنگام پارتیشن بندی حافظه ساخته شده و یک برنامه خوانده می‌شود چون دارای دستوراتی برای اجرا شدن است تا بتواند سیستم عامل را بوت کند کل کدهای MBR فقط 512 بایت می‌باشد که به صورت قراردادی، در اولین سکتور از حافظه (که معمولاً سکتور شماره 0 خوانده می‌شود) قرار می‌گیرد.

با توجه به این که یک سکتور معمولاً دارای 512 بایت حافظه ذخیره سازی است، با قرار گرفتن MBR به صورت کامل پر می‌شود.


وظیفه MBR

وظیفه BMR این است که  اطلاعات مربوط به پارتیشن‌های اولیه را در خود نگه داشته و با تشخیص پارتیشن فعال(همان پارتیشنی که سیستم عامل بر روی آن  نصب است) و استفاده از دستور موجود در اولین سکتور آن پارتیشن، هسته سیستم عامل را بر روی RAM قرار داده و اجرا کند.

از آن جایی که 512 بایت فضای بسیار کوچکی برای نوشتن یک برنامه است، MBR تنها این دو وظیفه را بر عهده دارد.



ساختار MBR

MBR از 512 بایت تشکیل می‌شود که بر روی اولین سکتور حافظه نگه داشته می‌شود. این 512 بایت شامل دستوری برای اجرای PBR و جدولی برای حفظ  اطلاعات پارتیشن‌هاست.

در ذیل ساختار یک MBR استاندارد به صورت خلاصه نوشته شده است:

1. کد خود راه انداز (شامل برچسب زمانی، کدهای اصلی، امضای دیسک)-بایت شماره0 تا 445  (446 بایت)

2. جدول پارتیشن‌ها (16 بایت برای هر چهار پارتیشن)-بایت شماره 446 تا 509 (64 بایت)

3. نشان اتمام MBR-باشت شماره 510 تا 511 (2 بایت)

کد خود راه انداز (که Boot loader نیز شناخته می‌شود) همان برنامه و دستوری است که PBR را با توجه به جدول پارتیشن‌ها اجرا می‌کند. دو بایت آخر (به  صورت هگز 55 و AA) نیز نشان دهنده اتمام MBR است.

از آن جایی که MBR فقط 64 بایت برای جدول پارتیشن‌ها اختصاص داده و اطلاعات هر پارتیشن نیز در 16 بایت ذخیره می‌شود، بنابراین MBR می‌تواند فقط چهار  پارتیشن را به عنوان پارتیشن اولیه شناسایی کند درحالی که بقیه پارتیشن‌ها به صورت پارتیشن منطقی شناسایی می‌شوند.  این یکی از مهمترین ضعف‌های MBR است. بوت سکتور جدید با نام GPT درحال جایگزینی MBR است که می‌تواند تا 128 پارتیشن را به عنوان پارتیشن اولیه شناسایی کند.


PBR و ارتباط با MBR در بوت سیستم عامل

نکته: PBR مخفف عبارت Partition Boot Record که در فارسی رکورد راه اندازی پارتیشن معنی می‌دهد.

نکته: در هنگام روشن کردن کامپیوتر که BIOS کنترل سیستم را برعهده دارد

نکته: پس از پارتیشن بندی حافظه که MBR بر روی اولین سکتور حافظه هارد قرار میگیرد. درصورت وجود چندین حافظه مثل هارد دیسک یا lash  ویا DVD و ...  عمل بوت توسط بایوس از هارد مریوطه آغاز می‌شود. به این ترتیب طبق قرارداد، اولین سکتور حافظه ( همان MBR) را می‌خواند و دستور موجود را اجرا می‌کند. در این هنگام کنترل سیستم از BIOS خارج شده و MBR  وظیفه‌ها را بر عهده می‌گیرد.

دستوری که در MBR قرار می‌گیرد، این است که با توجه به جدول پارتیشن موجو4، پارتیشن فعال را تشخیص داده سپس اولین سکتور آن پارتیشن که شامل PBR است را بخواند و  سپس برنامه PBR که شامل دستوری برای اجرا کردن هسته سیستم عامل است را اجرا نماید.

بنابراین MBR نیازی به دانستن این که سیستم عامل چیست یا هسته آن کجا قرار نگه داشته می‌شود، ندارد.  در این لحظه کار MBR به اتمام رسیده و سیستم توسط PBR اداره می‌شود.

PBR نیز حجم کمی داشته و  تنها کاری که انجام می‌دهد این است که هسته سیستم عامل را به اجرا در بیاورد.

پس از آن که سیستم عامل اجرا شد، کار PBR به اتمام رسیده و خود هسته سیستم عامل کنترل سیستم را بر عهده می‌گیرد. به این ترتیب سیستم عامل به  صورت کامل راه اندازی می‌شود.


GPT (GUID Partition Table)
برخلاف MBR که بیشترین تعداد پارتیشن Primary در آن 4  است، در GPT می توان تا 128 پارتیشن Primary مستقل از هم ایجاد کرد.
نکته: اگر بخواهیم تعداد پارتیشن بیشتری از ۴ تا در نوع MBR داشته باشیم، باید درون پارتیشن Extended پارتیشن های Primary را ایجاد کنیم.
بر خلاف دیسک MBR که در آن حداکثر اندازه Volume تا 2 TB است (در حالت های خاص می توان تا 3 TB رساند)، دیسک GPT توانایی ایجاد پارتیشن با حداکثر اندازه 18 EB یا 18,000,000 TB را داراست.
همچنینMBR  دارای نسخه پشتیبان از جداول  پارتیشن  نیست اما در GPT نسخه backup  وجود دارد
  • behrooz mohamadi nsasab
۱۴
مهر

مرکز اصلی سیستم عامل با حجم بسیار کوچک است که مدیریت کلی سیستم عامل را برعهده داشته و بصورت مستقیم با سخت‌افزار در ارتباط است.

کرنل وظیفه مدیریت سخت‌افزار و تخصیص منابع و حافظه, فایل ها و اجزای جانبی را دارد. همچنین آغازگر برنامه‌های کاربردی می باشد.

 Kernel مستقیما با سخت افزار در ارتباط بوده و I/O Management  و Process  Management و Device  Management و  File  Management و Memory  Management را انجام میدهد.

به بیان دیگر  هر Application یا برنامه کاربردی بر روی سیستم عامل برای ارتباط با سخت‌افزار نیازمند رابطی است که این رابط را کرنل برقرار میکند

  • behrooz mohamadi nsasab
۱۴
مهر
  1. با فشرده شدن دکمه start محتویات BIOS به RAM   منتقل می‌شود.
  2. ارسال سیگنال Post از طرف BIOS (Basic Input Output System ) موجود در Ram (Random Access Memory) به قطعات (جهت بررسی سلامت قطعاً -نکته: درصورت معیوب بودن با فشردن دکمه F1 بروی کیبرد،  میتوان این مرحله را نادیده پنداشت)
  3. تهیه یک لیست از تمام Device ها توسط BIOS
  4. بار گزاری Hard Disk شماره x  و یا هر حافظه که در تنظیمات BIOS آن به عنوان انتخاب اول Boot  در نظر گرفته شده است.
  5. Load شدن 512 بایت از Sector اول حافظه توسط BIOS به داخل RAM که به آنMBR می‌گویند.
  6. Load شدن Grub به همراه تمام تنظیمات و رکوردهای آن ( هنگام نصب Grub که زمان نصب سیستم عامل است، تمام سیستم عامل های موجود توسط Grub کاوش شده و رکوردها را در لیست خود افزوده است)
  7. نمایش GRUB2 در صفحه نمایش ( گراب:  نرم افزار بوت کننده سیستم عامل در لینوکس-نسخه دوم Grub با نام Grub2 شناخته می شود. )
  8. انتخاب سیستم عامل های لیست شده توسط grub
  9. بوت شدن Kernel توسط Grub2 (-توسط-دستورهای rmmode , insmode)
  10. تهیه Log  توسط کرنل (Kernel بصورت محدود از وقایع و رخدادهای سیستم گزارش تهیه میکند- کرنل به مقدار محدود و اندکی بالا می آید و از آن به بعد به برنامه کمکی نیاز دارد )
  11. kernel اولین پردازش با شماره ID یک(ID=1) را راه اندازی مینماید.
  12. اولین پردازش Init نام دارد که خود عامل به اجرا درآمدن دیگر پردازه ها است.
  13. به اجرا درآمدن پردازش (برنامه) تهیه Log از تمام جزییات توسط پردازش اول یعنی همان Init (نکته: برنامه ه معمولاا Log خود را درون دایرکتوری var قرار می‌دهند، همچنین تمام Log ها تا لحظه بوت شدن کامل kernel و تمام شدن عملیات Init در مسیرvar/log/dmesg قرار میگیرند، Kernel Ring Buffer تنها وقایع را تا قبل از بار گزاری syslog را درخود نگهداری میکند )
  14. اجرا آوردن تمام برنامه های مورد نیاز جهت اجرای دستورات موجود در مسیرهای(Path) و فایل سیستم، Swapping ، Port ها، ساعت سیستم، تخصیص حافظه موقت و … .
نکته: جدول پارتیشن ها در MBR (512 بایت اول دیسک، اولین سکتور در دیسک)ذخیره میشود، اگر دیسک دارای حجم بیشتر از 2 ترابایت باشد برای handle شدن پارتیشن ها و همچنین بوت شدن نیاز به حافظه بیشتر از 512 بایت دارد.
نکته: لاگ: ثبت وقایع-ثبت فعالیتهای یک رایانه یا کاربر برای استفاده مدیریت سیستم در زمان آتی جهت اطلاع از وضعیت
  • behrooz mohamadi nsasab
۲۷
شهریور

ابتدا از دستور زیر برای نمایش هارد و پارتیشن‌های موجود استفاده نمایید

ls

نکته: شماره گذاری پارتیشن‌ها از صفر (0) شروع می‌شود.

دستور زیر را به ترتیب از اول تا آخر برای تمامی پارتیشن‌ها امتحان میکنیم، تا زمانی که به پارتیشنی برسیم که فایل سیستم آن ext2 باشد

ls (hd*,partition_lable*)

پس از پیدا شدن پارتیش دستور زیر را برای آن می‌زنیم:

set boot=(hd*,partition_lable*)

set prefix=(hd*,partition_lable*)/boot/grub

و در آخر دستور زیر را بزنید:

insmod normal

normal

  • behrooz mohamadi nsasab
۲۷
شهریور

در صفحه ای که گراب ظاهر شده است دکمه e (به معنی رفتن به محیط ادیت و تنظیمات گراب) را بزنید:عبارت زیر را

init=/boot/bash

به انتهای خطی که با عبارت زیر شروع می‌شود بیافزایید:

linux /boot/vmlinuz . . .

و سپس دکمه های ctrl+X رابزنید:

مشاهده خواهید کرد که سل بایلا آمده است ولی با این تفاوت که FileSystem از نوع readoly است !

برای خارج شدن سیستم عامل از readOnly دستور زیر را بزنید:

mount -rw -o remount /

حال سیستم عامل حالت rw داشته و میتوان پسورد را تغییر داد (یوزر فعلی ترمینال بالا آمده ،‌ بوزر روت است)

برای تغییر پسورد دستورزیر را وارد نمایید:

passwd root

  • behrooz mohamadi nsasab
۲۴
شهریور

Timedatectl

بهترین دستور برای کنترل و بررسی سیستم دستور زیر است:
timedatectl
درخروجی این دستور عبارت real time clock یا RTC همان chip درون مادربرد هست که با خاموش شدن کامپیوتر مقدار ساعت را در خود ذخیره و نگهداری می‌کند
در خروجی این دستور عبارت DST یا daylight saving time همان مقدار یک ساعتی هست که در تابستان ساعت ها را به جلو و در زمستان ساعت ها را به عقب می‌کشانند
 
دستورات مفید:
timedatectl set-time 'YYYY-MM-DD HH:MM:SS'		#set time and date
timedatectl set-time HH:MM:SS				#for time only
timedatectl set-time YYYY-MM-DD				#for date only
timedatectl list-timezones				#list the available timezones
timedatectl set-timezone "Asia/Tehran" 			#Set timeZone
timedatectl set-timezone utc				#Set timeZone To UTC
timedatectl | grep local				#Find out if your hardware clock is set to local timezone-BestMode is "no"
timedatectl set-local-rtc 1				#Set hardware clock to local timezone
timedatectl set-local-rtc 0				#Set hardware clock to coordinated universal time (UTC)
timedatectl set-ntp true				#start automatic time synchronization with remote NTP server,
timedatectl set-ntp false				#disable NTP time synchronization
 
 
 
sudo dpkg-reconfigure tzdata				#debian: reconfig timerzone
cat /etc/timezone					#show current timezone
ls -ltrh /etc/localtime					#show current timezone[lrwxrwxrwx 1 root root 31 اوت   21 23:40 /etc/localtime -> /usr/share/zoneinfo/Asia/Tehran]
date							#Show time
date +%Y%m%d-%H%M%S					#Out: 20190707-134444

 

 

1-hwclock -s [or --hctosys]         #تنظیم ساعت سیستم‌عامل از سخت‌افزار
2-hwclock -w [or --systohc]         #تنظیم ساعت سخت‌افزار از سیستم‌عامل
3-hwclock -r [or --show] [or get]   #نمایش ساعت فعلی سخت‌افزار

 

timedatectl set-time 'YYYY-MM-DD HH:MM:SS'
[or]
date --set 2020-07-19
date --set 09:23:14
hwclock -r
hwclock -w
date && hwclock -r

 

 

 

  • behrooz mohamadi nsasab