ابزار کاربر

ابزار سایت


terminal:u:how_to_use_the_umount_command

تفاوت‌ها

تفاوت دو نسخهٔ متفاوت از صفحه را مشاهده می‌کنید.

پیوند به صفحه‌ی تفاوت‌ها

نگارش قبل در دو طرفنگارش قبل
نگارش بعد
نگارش قبل
terminal:u:how_to_use_the_umount_command [2018/12/27 17:11] – [رفع مشکلات Unmount] phoenixterminal:u:how_to_use_the_umount_command [2018/12/27 17:32] (فعلی) – [طریقه استفاده از دستور lsof برای Unmount کردن] phoenix
خط 41: خط 41:
 =====  رفع مشکلات Unmount ===== =====  رفع مشکلات Unmount =====
 عمل ''Unmount'' عکس [[terminal:m:mounting_file_systems_mount_command|mount]] است و اتصال میان نقطه اتصال و پارتیشن یا دایرکتوری را قطع میکند. چندین دلیل وجود دارد که یک ''mount point'' نتواند قطع شود. یکی از آنها مشغول بودن پارتیشن یا دایرکتوری است یعنی کاربری مثلا با [[terminal:c:changing_to_another_directory_cd_command| دستور cd]] وارد آن نقطه اتصال شده و امکان قطع اتصال وجود ندارد و یا اینکه فرآیند یا کاربری در حال استفاده از فایلی درون آن نقطه اتصال هستند. یعنی یک فایل ''open'' یا باز وجود دارد که در حال استفاده شدن توسط دیگران است. عمل ''Unmount'' عکس [[terminal:m:mounting_file_systems_mount_command|mount]] است و اتصال میان نقطه اتصال و پارتیشن یا دایرکتوری را قطع میکند. چندین دلیل وجود دارد که یک ''mount point'' نتواند قطع شود. یکی از آنها مشغول بودن پارتیشن یا دایرکتوری است یعنی کاربری مثلا با [[terminal:c:changing_to_another_directory_cd_command| دستور cd]] وارد آن نقطه اتصال شده و امکان قطع اتصال وجود ندارد و یا اینکه فرآیند یا کاربری در حال استفاده از فایلی درون آن نقطه اتصال هستند. یعنی یک فایل ''open'' یا باز وجود دارد که در حال استفاده شدن توسط دیگران است.
-بطور کلی شما نمیتوانید یک نقطه اتصال را بخاطر مشغول بودن یا باز بودن فایلی در آن دایرکتوری قطع یا ''Unmount'' کنید دو [[ترمینال:دستور lsof (نمایش PID در حال استفاده از یک فایل)]] و [[ترمینال:دستورfuser_نمایش_pid_در_حال_استفاده_از_یک_فایل|دستورfuser(نمایش PID در حال استفاده از یک فایل)]] دستورهایی هستندکه میتوانید توسط آنها بررسی کنید که کدام فرآیندها و کاربران در حال استفاده چه فایل هایی هستند که باعث عدم عمل ''Unmount'' شده است.+بطور کلی شما نمیتوانید یک نقطه اتصال را بخاطر مشغول بودن یا باز بودن فایلی در آن دایرکتوری قطع یا ''Unmount'' کنید دو [[terminal:l:how_to_use_the_linux_lsof_command_to_list_open_files| دستور lsof]] و [[terminal:f:how_to_use_the_linux_fuser_command|دستورfuser]] دستورهایی هستندکه میتوانید توسط آنها بررسی کنید که کدام فرآیندها و کاربران در حال استفاده چه فایل هایی هستند که باعث عدم عمل ''Unmount'' شده است.
 سیستم فایل ها در زمان خاموش شدن بصورت خودکار ''Unmount'' میشوند که پس از اینکه تمام فرآیندهای غیر سیستمی خاتمه یافتند اینکار انجام میشود و دوباره موقع ''boot'' شدن بصورت خودکار ''mount'' خواهند شد یکی از خطاهایی که ممکن است در هنگام ''Unmount'' کردن رخ دهد خطای زیر است:  سیستم فایل ها در زمان خاموش شدن بصورت خودکار ''Unmount'' میشوند که پس از اینکه تمام فرآیندهای غیر سیستمی خاتمه یافتند اینکار انجام میشود و دوباره موقع ''boot'' شدن بصورت خودکار ''mount'' خواهند شد یکی از خطاهایی که ممکن است در هنگام ''Unmount'' کردن رخ دهد خطای زیر است: 
  
خط 48: خط 48:
 umount: /run/media/phoenix/EXT-HARD: target is busy. umount: /run/media/phoenix/EXT-HARD: target is busy.
 </code>  </code> 
-خطای بالا به این معنی است که نقطه اتصالی به نام ''EXT-HARD'' اشغال است. یک علت خطای ''busy'' به خاطر این است که شاید کاربری در دایرکتوری ''/run/media/phoenix/EXT-HARD'' قرار دارد یعنی دایرکتوری جاری برای آن کاربر دایرکتوری ''/run/media/phoenix/EXT-HARD'' است. میتوانید از [[دستور pwd نمایش دایرکتوری جاری]] برای فهمیدن دایرکتوری جاری استفاده کنید. دلیل دیگر آن این است که کاربر با فرآیندی در حال استفاده از یک فایل که درون این دایرکتوری وجود دارد هستند [[ترمینال:دستور lsof (نمایش PID در حال استفاده از یک فایل)]] برای فهرست کردن فایل های باز استفاده میشود.+خطای بالا به این معنی است که نقطه اتصالی به نام ''EXT-HARD'' اشغال است. یک علت خطای ''busy'' به خاطر این است که شاید کاربری در دایرکتوری ''/run/media/phoenix/EXT-HARD'' قرار دارد یعنی دایرکتوری جاری برای آن کاربر دایرکتوری ''/run/media/phoenix/EXT-HARD'' است. میتوانید از [[terminal:p:display_the_path_of_your_current_directory|دستور pwd]] برای فهمیدن دایرکتوری جاری استفاده کنید. دلیل دیگر آن این است که کاربر با فرآیندی در حال استفاده از یک فایل که درون این دایرکتوری وجود دارد هستند [[terminal:l:how_to_use_the_linux_lsof_command_to_list_open_files| دستور lsof]] برای فهرست کردن فایل های باز استفاده میشود.
 =====  طریقه استفاده از دستور lsof برای Unmount کردن ===== =====  طریقه استفاده از دستور lsof برای Unmount کردن =====
-فرض کنید سیستم فایل بر روی دایرکتوری ''mnt/hdd/'' اتصال داده شده است و میخواهید این نقطه اتصال را قطع کنید ولی با مشکل ''busy'' بودن مواجه میشوید. برای فهرست کردن لیستی از فرایندهای مرتبط با دایرکتوری ''mnt/hdd/'' از [[ترمینال:دستور lsof (نمایش PID در حال استفاده از یک فایل)]] بصورت زیر استفاده میکنیم. +فرض کنید سیستم فایل بر روی دایرکتوری ''mnt/hdd/'' اتصال داده شده است و میخواهید این نقطه اتصال را قطع کنید ولی با مشکل ''busy'' بودن مواجه میشوید. برای فهرست کردن لیستی از فرایندهای مرتبط با دایرکتوری ''mnt/hdd/'' از [[terminal:l:how_to_use_the_linux_lsof_command_to_list_open_files| دستور lsof]] بصورت زیر استفاده میکنیم. 
 <code;bash;> <code;bash;>
 lsof /mnt/hdd/ lsof /mnt/hdd/
خط 64: خط 64:
 lsof    31380 phoenix  cwd    DIR   8,17     4096 20323 /mnt/hdd/software lsof    31380 phoenix  cwd    DIR   8,17     4096 20323 /mnt/hdd/software
 </code>  </code> 
- پس از بدست آوردن شماره ''pid'' هر یک از فرایندها باید آنها را با [[ترمینال:دستور_kill_خاموش_کردن_فرآیند|]] از بین ببریم. فرمت کلی برای اینکار بصورت زیر است. + پس از بدست آوردن شماره ''pid'' هر یک از فرایندها باید آنها را با [[terminal:k:how_to_kill_a_process_from_the_command_line|دستور kill]] از بین ببریم. فرمت کلی برای اینکار بصورت زیر است. 
 <code;bash;> <code;bash;>
 kill -l5 kill -l5
 </code>  </code> 
-نکته ای که درباره خروجی دستور بالا خط سوم و چهارم است که[[ترمینال:دستور_more_نمایش_فایل_متنی_بصورت_صفحه_به_صفحه| دستور more]] را نشان میدهند این است که ستون **fd** در سومین خط بیانگر این است که دایرکتوری جاری یا **cwd** آن دایرکتوری ''mnt/hdd/software/'' است و این به این معنی است که [[ترمینال:دستور_more_نمایش_فایل_متنی_بصورت_صفحه_به_صفحه|دستور more]] در حال اجرا شدن و خواندن یک فایل در دایرکتوری ''mnt/hdd/software/'' است و فایلی که [[ترمینال:دستور_more_نمایش_فایل_متنی_بصورت_صفحه_به_صفحه|دستور more]] در حال خواندن آن است **test.txt** نام دارد در ستون **fd** از خط چهارم **3r** بیانگر خواندن فایل توسط[[ترمینال:دستور_more_نمایش_فایل_متنی_بصورت_صفحه_به_صفحه| دستور more]] است. +نکته ای که درباره خروجی دستور بالا خط سوم و چهارم است که [[terminal:m:display_long_text_file_per_page|دستور more ]] را نشان میدهند این است که ستون **fd** در سومین خط بیانگر این است که دایرکتوری جاری یا **cwd** آن دایرکتوری ''mnt/hdd/software/'' است و این به این معنی است که [[terminal:m:display_long_text_file_per_page|دستور more ]] در حال اجرا شدن و خواندن یک فایل در دایرکتوری ''mnt/hdd/software/'' است و فایلی که [[terminal:m:display_long_text_file_per_page|دستور more ]] در حال خواندن آن است **test.txt** نام دارد در ستون **fd** از خط چهارم **3r** بیانگر خواندن فایل توسط [[terminal:m:display_long_text_file_per_page|دستور more ]] است. 
-به هر حال باید با [[ترمینال:دستور_lsof_نمایش_pid_در_حال_استفاده_از_یک_فایل|دستور lsof]] شماره pid ها بدست بیاورید و سپس با[[ترمینال:دستور_kill_خاموش_کردن_فرآیند| دستور kill]] آن فرایندها را از بین ببرید و در آخر با دستور umount دایرکتوری را Unmount کنید+به هر حال باید با [[terminal:l:how_to_use_the_linux_lsof_command_to_list_open_files| دستور lsof]] شماره pid ها بدست بیاورید و سپس با [[terminal:k:how_to_kill_a_process_from_the_command_line|دستور kill]] آن فرایندها را از بین ببرید و در آخر با دستور umount دایرکتوری را Unmount کنید
terminal/u/how_to_use_the_umount_command.1545918085.txt.gz · آخرین ویرایش: 2018/12/27 17:11 توسط phoenix

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki