رفع خطاها، مشکلات و مشکلات زیرسیستم ویندوز برای لینوکس

مانند همه نرم‌افزارها، زیرسیستم ویندوز (WSL2) نیز مشکلات عادلانه‌ای دارد. در این راهنما، ما قصد داریم به عیب‌یابی زیرسیستم ویندوز برای(Windows Subsystem for Linux) پیام‌ها و کدهای خطای لینوکس بپردازیم.

تعمیر زیرسیستم ویندوز(Fix Windows Subsystem) برای خطاها(Linux Errors) ، مشکلات(Problems) و مشکلات لینوکس(Issues)

اینها پیام‌هایی هستند که می‌خواهیم پیام‌ها و کدهای (Codes)خطای (Linux Error Messages)زیرسیستم ویندوز(Windows Subsystem) برای لینوکس را عیب‌یابی کنیم .

  1. گزینه های WSL 2 را نمی بینید
  2. خطا: 0x1bc
  3. خطا: 0x80040306 در هنگام نصب
  4. دسترسی به فایل های WSL از ویندوز امکان پذیر نیست
  5. توزیع WSL 2(WSL 2) را نمی توان شروع کرد و فقط " WSL 2 " را در خروجی مشاهده کرد
  6. فرمان یافت نشد
  7. خطا: 0x80370102 ماشین مجازی راه اندازی نشد زیرا یک ویژگی مورد نیاز نصب نشده است
  8. خطا: 0x80040154 پس از به روز رسانی ویندوز(Windows)
  9. WSL(WSL Stops) با  خطای 0x80070003 کار نمی کند(Error 0x80070003)
  10. نمایش زبان در حال تغییر در WSL
  11. مشکلات نصب(Installation) پس از بازیابی سیستم ویندوز(Windows)
  12. دسترسی به اینترنت در WSL وجود ندارد
  13. مجوز در هنگام استفاده از پینگ رد شد
  14. پس از نصب WSL 2(WSL 2) بوت نمی شود
  15. قادر به اجرای دستورات ویندوز(Windows Commands) در داخل یک توزیع کننده نیست
  16. ICS غیرفعال است
  17. بش آویزان است
  18. مشکلات اتصال OpenSSH-Server
  19. مجموعه ارجاع شده یافت نشد
  20. (Correct)خطاهای مجوز ( مربوط به SSH ) را (SSH)تصحیح کنید

اجازه دهید در مورد آنها با جزئیات صحبت کنیم.

1] گزینه های WSL 2 را نمی بینید

بسیاری از کاربران ویندوز(Windows) شکایت کرده‌اند که حتی با وجود ساختن شماره 1903، نمی‌توانند گزینه‌های WSL 2 را ببینند . این زمانی اتفاق می افتد که دستگاه رایانه شما هنوز بکپورت WSL 2 را نگرفته باشد.

برای رفع این مشکل، فقط باید به‌روزرسانی‌ها را بررسی کنید( check for updates) ، و می‌توانید بروید.

2] خطا: 0x1bc

هنگامی که "زبان نمایش" (“Display Language” ) یا  "محل سیستم" (“System Locale” ) روی انگلیسی تنظیم نشده باشد،  ممکن است خطای زیر را مشاهده کنید .(English.)

wsl --set-default-version 2

Error: 0x1bc

For information on key differences with WSL 2 please visit https://aka.ms/wsl2

برای رفع خطا، باید بررسی کنید که آیا Kernel روی رایانه شما نصب شده است یا خیر. برای این کار از دستور زیر استفاده کنید.

dir %SystemRoot%\system32\lxss\tools\kernel

اگر Kernel ندارید از aka.ms دانلود کنید . مطمئن شوید که آن را به عنوان یک سرپرست دانلود کرده و برای رفع خطا ، Kernel را روی دستگاه خود نصب کنید.(Kernel)

3] خطا: 0x80040306 در هنگام نصب

تعمیر زیرسیستم ویندوز برای خطاها، مشکلات و مشکلات لینوکس

اگر خطای 0x80040306 را در هنگام نصب مشاهده می کنید. برای رفع این مشکل، باید  کنسول Legacy را غیرفعال کنید. (Legacy Console. )برای انجام این کار، مراحل داده شده را دنبال کنید.

  1. Command Prompt  را  به عنوان مدیر از  منوی Start باز کنید.(Start Menu.)
  2. (Right-click)روی لوگوی cmd کلیک راست کرده و Properties را انتخاب کنید.(Properties.)
  3. اکنون تیک گزینه Use legacy console را  (Use legacy console” )بردارید(“) و Ok را بزنید.

در نهایت بررسی کنید که آیا مشکل را برطرف می کند یا خیر.

4] نمی توان به فایل های WSL از ویندوز دسترسی پیدا کرد

اگر نمی‌توانید با \\wsl$ در ویندوز به (Windows)زیرسیستم ویندوز(Windows Subsystem) برای لینوکس(Linux) دسترسی پیدا کنید، این می‌تواند به این معنی باشد که سرور فایل پروتکل 9P شروع به کار نمی‌کند.

ساده ترین راه حل این است که رایانه خود را به روز کنید و "به روز رسانی برای محصولات مایکروسافت در Windows Update" را فعال کنید. (“updates for Microsoft products on Windows Update”. )برای این کار می توانید مراحل داده شده را دنبال کنید.

  1. تنظیمات را (Settings ) با  Win + I. کنید  .
  2. روی  Update & Security > Advanced options.
  3. برای غیرفعال کردن " دریافت به روز رسانی برای سایر محصولات مایکروسافت هنگام به روز رسانی ویندوز(Receive updates for other Microsoft products when you update Windows) " از کلید استفاده کنید.

این مشکل را برای شما حل می کند.

5] نمی توان توزیع WSL 2 را شروع کرد و فقط " WSL 2 " را در خروجی مشاهده کرد

اگر زبان نمایش شما روی انگلیسی تنظیم نشده باشد، این خطا اجتناب ناپذیر است. هنگام تلاش برای راه اندازی WSL 2(WSL 2) ، خروجی زیر را مشاهده خواهید کرد .

C:\Users\me>wsl

WSL 2

برای رفع خطا، باید Kernel را به صورت دستی دانلود و نصب کنید. می توانید فایل را از aka.ms/wsl2kernel دانلود کنید . کرنل(Kernel) را نصب کنید تا خطا به راحتی برطرف شود.

6] فرمان یافت نشد

این یکی از خطاهای رایجی است که هنگام اجرای یک فایل exe از ویندوز(Windows) در لینوکس(Linux) مشاهده می شود. هنگام تلاش برای انجام همین کار، ممکن است خطای زیر را مشاهده کنید.

$ notepad.exe

-bash: notepad.exe: command not found

این زمانی اتفاق می افتد که  $PATH نتواند فایل exe . را پیدا کند . بهترین راه حل برای این خطا اجرای دستور زیر در ترمینال(Terminal) است.

export PATH=$PATH:/usr/sbin

این کار را انجام دهید و بررسی کنید که آیا خطا را برطرف می کند.

7] خطا: 0x80370102 ماشین مجازی راه اندازی نشد زیرا یک ویژگی مورد نیاز نصب نشده است

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

این مواردی است که می توانید برای رفع خطا انجام دهید: 0x80370102، ماشین مجازی راه اندازی نشد زیرا یک ویژگی مورد نیاز نصب نشده است.

  1. Hyper-V را فعال کنید
  2. مجازی سازی سخت افزار را فعال کنید
  3. مجازی سازی تودرتو را فعال کنید

اجازه دهید در مورد آنها با جزئیات صحبت کنیم.

Hyper-V را فعال کنید

بدون Hyper-V ، نمی توانید یک محیط(Environment) مجازی ایجاد کنید . پس با کمک مراحل زیر آن را فعال کنید.

  1. کنترل پنل (Control Panel ) را از  منوی استارت(Start Menu.) باز  کنید.
  2. روی  Programs and Features > Turn Windows features on or off
  3. (Scroll)به پایین بروید تا Hyper-V را پیدا کنید ، آن را بررسی کنید و Ok را کلیک کنید.

پس از فعال کردن Hyper-V بررسی کنید که آیا مشکل برطرف شده است.

مجازی سازی سخت افزار را فعال کنید

(Hardware Virtualization)هنگام تلاش برای اجرای ماشین مجازی ، (Virtual Machine)مجازی سازی سخت افزار ضروری است . بنابراین، اگر با خطای 0x80370102 مواجه هستید، سعی کنید مجازی سازی سخت افزار را(enable Hardware Virtualization) از بایوس فعال کنید تا مشکل برطرف شود.

مجازی سازی تودرتو را فعال کنید

Nested Virtualization به شما امکان می دهد Hypervisor را در داخل یک VM اجرا کنید. بنابراین، اگر همچنان با این خطا مواجه هستید، مجازی‌سازی(Virtualization) تودرتو را فعال کنید . برای انجام این کار، باید PowerShell  را به عنوان یک مدیر اجرا کنید و دستور زیر را اجرا کنید.

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

اجازه دهید این دستور اجرا شود و بررسی کنید که آیا مشکل را برطرف می کند یا خیر.

8] خطا: 0x80040154 پس از به روز رسانی ویندوز(Windows)

عیب یابی پیام ها و کدهای خطای زیرسیستم ویندوز برای لینوکس

اگر Windows Subsystem برای لینوکس به دلیل به (Linux)روز رسانی ویندوز(Windows Update) غیرفعال باشد، ممکن است این خطا را مشاهده کنید . بنابراین، برای رفع مشکل، باید این گزینه را فعال کنیم. برای انجام این کار، مراحل داده شده را دنبال کنید.

  1. Control  را (Control ) از  منوی Start اجرا کنید.(Start Menu.)
  2. روی  Programs and Features > Turn Windows features on or off
  3. به پایین بروید تا Windows Subsystem for Linux را پیدا کنید ، آن را بررسی کنید و Ok را کلیک کنید.

در نهایت، کامپیوتر خود را مجددا راه اندازی کنید و بررسی کنید که آیا مشکل همچنان وجود دارد یا خیر.

9] WSL(WSL Stops) با  خطای 0x80070003 کار نمی کند(Error 0x80070003)

اگر WSL با این کد خطا(error code 0x80070003) 0x80070003 متوقف شد ، آن را با این راهنما حل کنید.

10] تغییر زبان در WSL را (WSL)نمایش دهید(Display)

WSL به طور خودکار محلی Ubuntu را تغییر می دهد تا با زبان رایانه ویندوز شما مطابقت داشته باشد. (Windows)اگر از طرفداران این حرکت نیستید از دستور زیر برای تنظیم زبان نمایش بر اساس نیاز خود استفاده کنید.

توجه: دستور زیر زبان را به en-US تغییر می دهد.

sudo update-locale LANG=en_US.UTF8

این کار را انجام دهید و بررسی کنید که آیا مشکل برطرف شده است یا خیر.

11] مشکلات نصب(Installation) پس از بازیابی سیستم ویندوز(Windows)

اگر پس از بازیابی سیستم ویندوز با مشکلات (Windows)نصب(Installation) مواجه شدید ، سعی کنید پوشه Windows Subsystem for Linux را حذف کنید. مسیر آن در زیر آمده است.

%windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux

رایانه خود را مجدداً راه اندازی کنید، Bash(Bash) را مجدداً نصب کنید و بررسی کنید که آیا مشکل برطرف شده است یا خیر.

12] بدون دسترسی به اینترنت در WSL

بسیاری از کاربران گزارش داده اند که قادر به دسترسی به اینترنت(Internet) در WSL نیستند. با این حال، راه حل ممکن است ساده تر از آن چیزی باشد که فکر می کنید. این به دلیل هر آنتی ویروس شخص ثالثی است که ممکن است داشته باشید. همانطور که فایروال اینترنت(Internet) را مسدود می کند . بنابراین، برای رفع این مشکل، آنتی ویروس را حذف کنید و می توانید بروید.

13] هنگام استفاده از پینگ، مجوز رد شد(Permission)

اگر نمی توانید در WSL پینگ کنید، به این معنی است که شما امتیاز مدیریتی ندارید. بنابراین، شما باید اوبونتو(Ubuntu) و لینوکس(Linux) را با امتیاز مدیریت یا Bash.exe روی مترجم خط فرمان خود با امتیاز مدیریت اجرا کنید.

امیدواریم این موضوع به راحتی حل شود.

14] پس از نصب WSL 2(WSL 2) بوت نمی شود

دلیل اینکه چرا شما نمی توانید پس از نصب WSL 2 بوت شوید   هنوز عجیب است، اما مایکروسافت(Microsoft) در تلاش است تا روی یک به روز رسانی کار کند تا مشکل را به طور کامل تشخیص دهد. با این حال، دو کار وجود دارد که می توانید انجام دهید و ببینید آیا مشکل را برطرف می کند یا خیر.

15] قادر به اجرای دستورات ویندوز(Windows Commands) در داخل یک توزیع کننده نیست

چند توزیع کننده در فروشگاه ویندوز(Windows Store) وجود دارند که برای اجرای تمام دستورات ویندوز(Windows Commands) به طور کامل بهینه نشده اند . ممکن است هر یک از خطاهای زیر را دریافت کنید.

-bash: powershell.exe: command not found
powershell.exe /c start

برای رفع این خطا دستور زیر را اجرا کنید.

echo $PATH

اکنون، بررسی کنید که آیا خروجی شامل “/mnt/c/Windows/system32” است یا خیر، اگر با خطا مواجه هستید، به احتمال زیاد مسیر آنجا نخواهد بود.

اکنون تنظیمات نمایه خود را بررسی کنید

cat /etc/profile

اکنون، بررسی کنید که آیا تخصیص مسیر با (Path)“#” شروع می شود یا خیر، اگر شروع شد، بلوک را نظر دهید. همچنین، بررسی کنید که آیا wsl.conf وجود دارد و مطمئن شوید که ندارد appendWindowsPath=false. اگر این کار را کرد، آن را کامنت کنید.

پس از انجام این کار، باید توزیع را دوباره راه اندازی کنید. برای این کار می توانید از دستور زیر استفاده کنید.

wsl -t <name of the distributor>

یا

wsl --shutdown

انشالله مشکل رفع بشه

16] ICS غیرفعال است

یک WSL نمی تواند بدون ICS یا اشتراک اتصال اینترنت(ICS or Internet Connection Sharing) کار کند. سرویس  شبکه میزبان (HNS) (Host Network Service (HNS) ) از ICS برای ایجاد یک شبکه مجازی اساسی برای WSL 2 برای ایجاد NAT ، DNS ، DHCP و اشتراک اتصال میزبان استفاده می کند.

برای رفع خطا، باید ICS را فعال کنیم . بنابراین، مراحل داده شده را برای فعال کردن ICS دنبال کنید .

  1. خدمات (Services ) را از  منوی استارت راه اندازی کنید(Start Menu.)
  2. بر روی Internet Connection Sharing (ICS) (Internet Connection Sharing (ICS), ) دوبار کلیک کنید و اگر متوقف شد روی Start  کلیک  کنید.
  3. در نهایت روی  Apply > Ok.

شما همچنین باید برخی از سیاست ها را ویرایش کنید. بنابراین،  Group Policy Editor  را راه اندازی کنید و به مکان زیر بروید.

Computer Configuration > Administrative Templates > Network > Network Connections

و سیاست های زیر را غیر فعال کنید.

  • (Prohibit)نصب و پیکربندی Network Bridge را در شبکه دامنه DNS خود ممنوع کنید
  • استفاده از فایروال اتصال اینترنت(Internet Connection Firewall) را در شبکه دامنه DNS خود ممنوع کنید
  • استفاده از اشتراک گذاری اتصال به اینترنت(Internet Connection) را در شبکه دامنه DNS خود ممنوع کنید
  • (Require)هنگام تنظیم مکان شبکه، کاربران دامنه را ملزم به بالا بردن دامنه کنید

17] باش آویزان است

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

18] مشکلات اتصال OpenSSH-Server

اگر مشکلی در اتصال OpenSSF-Server مشاهده می کنید، اولین کاری که باید انجام دهید این است که بررسی کنید که آیا OpenSSH-Server در حال اجرا است یا خیر. برای این کار می توانید از دستور زیر استفاده کنید.

sudo service ssh status

اگر در حال اجرا نیست، از دستور زیر برای شروع سرویس استفاده کنید.

sudo service ssh start

اگر در حال اجرا است، باید سرویس را با دستور زیر راه اندازی مجدد کنید و بررسی کنید که آیا مشکل برطرف شده است یا خیر.

sudo service ssh restart

اگر قادر به رفع مشکل نیست، سعی کنید SSHD را در حالت اشکال زدایی راه اندازی کنید. قبل از آن از دستور زیر برای توقف سرویس SSH استفاده کنید.

sudo service ssh stop

اکنون از دستور زیر برای شروع SSHD در حالت اشکال زدایی استفاده کنید.

sudo /usr/sbin/sshd -d

امیدوارم این خطا رفع شود.

19] مجموعه ارجاع شده یافت نشد

بسیاری از کاربران هنگامی که سعی می کنند ویژگی اضافی WSL را فعال کنند با (WSL)"مجموعه ارجاع شده یافت نشد" مواجه می شوند. (“The referenced assembly could not be found”)اگر شما یکی از آنها هستید، سعی کنید Windows Subsystem برای لینوکس (Windows Subsystem for Linux ) را از کنترل پنل(Control Panel) فعال کنید و رایانه خود را به روز کنید. امیدوارم(Hopefully) که این خطا برطرف شود.

20] اشتباهات مجوز ( مربوط به SSH ) را (SSH)تصحیح کنید(Correct)

اگر خطای زیر را مشاهده می‌کنید، این بخش را برای راه‌حل قرار دهید.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/home/artur/.ssh/private-key.pem' are too open.

برای رفع این مشکل، مایکروسافت(Microsoft) پیشنهاد می کند که به فایل /etc/wsl.conf  و موارد زیر را اضافه کنید:

[automount]
enabled = true
options = metadata,uid=1000,gid=1000,umask=0022

این خطا را برطرف می کند. قبل از انجام این کار، مطمئن شوید که مجوز کافی دارید.

اینها برخی از پیام‌ها(Linux Error Messages) و کدهای خطای (Codes)زیرسیستم ویندوز(Windows Subsystem) برای لینوکس و نکات عیب‌یابی آنها بود. امیدواریم که آنها به شما در رفع خطاها، مشکلات(Problems) و مشکلات WSL(Issues) کمک کنند .



About the author

من یک متخصص کامپیوتر با بیش از 10 سال تجربه هستم و در کمک به افراد در مدیریت کامپیوترهایشان در دفترشان تخصص دارم. من مقالاتی در مورد موضوعاتی مانند نحوه بهینه سازی اتصال اینترنت خود، نحوه راه اندازی رایانه برای بهترین تجربه بازی و موارد دیگر نوشته ام. اگر در مورد هر چیزی که مربوط به کار یا زندگی شخصی خود است به دنبال کمک هستید، من آن شخص برای شما هستم!



Related posts