ابزار کاربر

ابزار سایت


terminal:u:how_to_use_the_umount_command

تفاوت‌ها

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

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

نگارش قبل در دو طرفنگارش قبل
نگارش بعد
نگارش قبل
آخرین نگارشنگارش بعد در دو طرف
terminal:u:how_to_use_the_umount_command [2018/12/27 13:22] – [اجبار unmount شدن یک فایل سیستم] phoenixterminal:u:how_to_use_the_umount_command [2018/12/27 13:53] – [طریقه استفاده از دستور lsof برای Unmount کردن] phoenix
خط 26: خط 26:
 umount -f /mnt umount -f /mnt
 </code>  </code> 
- اگر دستور مورد نظر کار نکرد شما میتوانید مانند مثال قبلی از ''Lazy Unmount'' استفاده کنید شما میتوانید از طریق دستور متوجه شوید که چه پردازش هایی در حال استفاده از ''mount point'' مورد نظر هستند [[terminal:p:command_to_check_the_process_status_ps_command|ps]] به همراه [[terminal/g|grep/how_to_use_grep_command_to_search_a_word_in_a_file]] به شکل زیر به شما خروجی ها را نمایش میدهد که در خصوص پردازش هایی هستند که در حال استفاده از ''mount point''ی به نام ''mydata/'' میباشند:+ اگر دستور مورد نظر کار نکرد شما میتوانید مانند مثال قبلی از ''Lazy Unmount'' استفاده کنید شما میتوانید از طریق دستور متوجه شوید که چه پردازش هایی در حال استفاده از ''mount point'' مورد نظر هستند [[terminal:p:command_to_check_the_process_status_ps_command|ps]] به همراه [[terminal/g/how_to_use_grep_command_to_search_a_word_in_a_file|grep]] به شکل زیر به شما خروجی ها را نمایش میدهد که در خصوص پردازش هایی هستند که در حال استفاده از ''mount point''ی به نام ''mydata/'' میباشند:
 <code;bash;> <code;bash;>
 ps ajx|grep /mydata ps ajx|grep /mydata
 </code>  </code> 
- با استفاده از [[ترمینال:دستورfuser_نمایش_pid_در_حال_استفاده_از_یک_فایل|دستورfuser(نمایش PID در حال استفاده از یک فایل)]] به شکل زیر هم میتوانید متوجه شوید که در حال حاضر کدام پردازش دایرکتوری را برای انجام کار نگه داشته است: + با استفاده از [[terminal:f:how_to_use_the_linux_fuser_command|دستورfuser]] به شکل زیر هم میتوانید متوجه شوید که در حال حاضر کدام پردازش دایرکتوری را برای انجام کار نگه داشته است: 
 <code;bash;> <code;bash;>
 fuser -cu /mydata fuser -cu /mydata
خط 40: خط 40:
 همانطور که در خروجی فوق مشاهده میکنید نام کاربری به همراه نام پردازش مورد نظر به شما نمایش داده میشود نام کاربری در واقع مالک پردازش مورد نظر است و شما میتوانید با kill کردن پردازش مورد نظر عملیات ''unmount'' را به درستی انجام دهید. همانطور که در خروجی فوق مشاهده میکنید نام کاربری به همراه نام پردازش مورد نظر به شما نمایش داده میشود نام کاربری در واقع مالک پردازش مورد نظر است و شما میتوانید با kill کردن پردازش مورد نظر عملیات ''unmount'' را به درستی انجام دهید.
 =====  رفع مشکلات Unmount ===== =====  رفع مشکلات Unmount =====
-عمل ''Unmount'' عکس [[terminal:دستور_mount_mount_کردن_سیستم_فایل_یا_دیسک|mount]] است و اتصال میان نقطه اتصال و پارتیشن یا دایرکتوری را قطع میکند. چندین دلیل وجود دارد که یک ''mount point'' نتواند قطع شود. یکی از آنها مشغول بودن پارتیشن یا دایرکتوری است یعنی کاربری مثلا با [[ترمینال:دستور 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
terminal/u/how_to_use_the_umount_command.txt · آخرین ویرایش: 2018/12/27 14:02 توسط phoenix

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki