یک اسکریپت کوچک Bash که فلش USB را پاک میکند و آن را به صورت NTFS (پیشفرض) یا exFAT فرمت میکند، تا بعد از این که با mkusb برای نصب اوبونتو استفادهاش کردید، دوباره روی ویندوز خوانده شود. به هر چیزی که شبیه دیسک سیستم باشد دست نمیزند.
یک اجرا، پنج مرحله. اول wipefs امضاهای قدیمی را پاک میکند، بعد sgdisk یک GPT تازه با یک پارتیشن کامل میسازد، و در پایان mkfs.ntfs یا mkfs.exfat فایلسیستم را روی پارتیشن مینشاند. پیش از همهی اینها، تمام پارتیشنهای فلش از طریق udisksctl آنمونت میشوند تا udisks2 وسط کار دوباره مونتش نکند.
اگر مرحلهی wipe به این دلیل که چیزی فلش را در دست گرفته شکست بخورد، اسکریپت خودش دستورهای تشخیص (lsblk، mount، fuser، pvs، lvs) را اجرا میکند و قبل از خروج نشان میدهد چه چیزی مزاحم است.
اسکریپت را بگیرید، اجراییاش کنید، اول پیشنمایش بگیرید، بعد اجرا کنید:
curl -O https://raw.githubusercontent.com/cocodedk/usb-formatter/main/format-usb.sh
chmod +x format-usb.sh
./format-usb.sh /dev/sdX KINGSTON --dry-run
sudo ./format-usb.sh /dev/sdX KINGSTON
--dry-run اجرا کنید. به sudo نیاز ندارد و تمام فرمانهایی را که قرار است اجرا کند چاپ میکند تا قبل از تحویل به sudo، مطمئن شوید دستگاه درست انتخاب شده.
| گزینه | عملکرد |
|---|---|
| --ntfs | فرمت NTFS. پیشفرض است. روی ویندوز بدون نصب چیزی خوانده میشود. |
| --exfat | فرمت exFAT. برای فایلهای بزرگتر از ۴ گیگابایت روی دوربین و تلویزیون مناسبتر است. |
| -n, --dry-run | هر مرحله را بدون تغییر چیزی چاپ میکند. به root نیاز ندارد. |
| -d, --diagnose | فقط دستگاه را بررسی میکند — مونتها، holderها، LVM. وقتی اجرای قبلی busy داده. |
| -h, --help | راهنما را چاپ میکند و خارج میشود. |
/sys/block/<dev>/removable خوانده میشود. اگر ۱ نباشد، اسکریپت اجرا نمیشود. SSD داخلی و NVMe هرگز از این بررسی رد نمیشوند./، /home یا /boot مونت باشد، اجرا قبل از هر تغییری متوقف میشود.swapon --show)، اسکریپت آن را پاک نمیکند.udisksctl unmount --no-user-interaction، بعد umount، و در نهایت umount -l به صورت lazy. به udisks2 گفته میشود دوباره مونت نکند.wipefs شکست بخورد، بلاک تشخیص به صورت خودکار اجرا میشود و holderها، مونتها و وضعیت LVM را قبل از خروج چاپ میکند.YES را تایپ کنید تا ادامه پیدا کند. --dry-run از این مرحله رد میشود و چیزی تغییر نمیدهد.متداولترین خطا "device busy" است — یک فایلمنیجر همان لحظه که فلش را زدهاید پارتیشنش را باز کرده. برای دیدن این که چه چیزی در دست گرفته، تشخیص را اجرا کنید:
sudo ./format-usb.sh /dev/sdX --diagnose
یک درخت lsblk، تمام مونتهای زنده، خروجی fuser -v روی هر گرهی پارتیشن، و تصویر LVM از pvs و lvs را میبینید. فایلمنیجر را ببندید (یا holder را kill کنید)، فلش را بکشید بیرون و دوباره بزنید، و یک بار دیگر امتحان کنید.