نگارش قبل در دو طرفنگارش قبلنگارش بعد | نگارش قبلآخرین نگارشنگارش بعد در دو طرف |
terminal:u:how_to_use_the_umount_command [2018/12/27 13:41] – [رفع مشکلات Unmount] phoenix | terminal:u:how_to_use_the_umount_command [2018/12/27 13:53] – [طریقه استفاده از دستور lsof برای Unmount کردن] phoenix |
---|
===== رفع مشکلات 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'' کردن رخ دهد خطای زیر است: |
| |
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/ |
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 |