Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

SD Clean/Linux: Difference between revisions

From Hacks Guide Wiki
m (add category)
(add GParted instructions)
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This is an add-on section for completely recreating an SD card's filesystem using fdisk and mkfs. This should only be done if formatting does not fix your issue or is not possible for some reason.
This is an add-on section for completely recreating an SD card's filesystem using either fdisk and mkfs or GParted. This should only be done if formatting does not fix your issue or is not possible for some reason.


This page is for Linux users only. If you are not on Linux, see the [[SD Clean/Windows|Windows]] and/or [[SD Clean/Mac|Mac]] pages instead.
This page is for Linux users only. If you are not on Linux, see the [[SD Clean/Windows|Windows]] and/or [[SD Clean/Mac|Mac]] pages instead.
Line 6: Line 6:
{{warning|Before beginning these steps, copy all of your SD card's contents to a folder on your computer.}}
{{warning|Before beginning these steps, copy all of your SD card's contents to a folder on your computer.}}


=== Command line ===
{{warning|The commands in this guide are case-sensitive. Enter them exactly as written, or there may be unintended consequences.}}
{{warning|The commands in this guide are case-sensitive. Enter them exactly as written, or there may be unintended consequences.}}


# Make sure your SD card is '''not''' inserted
# Make sure your SD card is '''not''' inserted.
# Open a terminal window and type <code>watch lsblk</code>
# Open a terminal window and type <code>watch lsblk</code>.
# Insert the SD card and watch for a new device appearing in lsblk
# Insert the SD card and watch for a new device appearing in lsblk.
# Observe the output for the new device. It should match something like this: {{#tag:syntaxhighlight|
## Observe the output for the new device. It should match something like this: {{#tag:syntaxhighlight|
NAME        MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
mmcblk0    179:0    0 29.7G 0 disk  
mmcblk0    179:0    0   3,8G 0 disk
└─mmcblk0p1 179:1    0 29.5G 0 part /run/media/user/FFFF-FFFF
└─mmcblk0p1 179:1    0   3,7G 0 part /run/media/user/FFFF-FFFF
|lang=text}}
|lang=text}}
# Take note of the name of the device that now appears. In our example above, it was <code>mmcblk0</code>, but it could show up as <code>sda</code> or <code>sdb</code>, if you use a USB adapter
# Take note of the name of the device that now appears. In our example above, it was <code>mmcblk0p1</code>.
#* If <code>RO</code> is set to 1, make sure the lock switch is not slid down
#* If <code>RO</code> is set to 1, make sure the lock switch is not slid down.
# Hit CTRL + C to exit the menu
# Hit CTRL + C to exit the menu.
# Type <code>sudo umount /dev/<device name>*</code> (do not replace the <code>*</code>)
# For each partition of the disk, type <code>umount /dev/<device name>i</code>.
# Type <code>sudo fdisk /dev/<device name></code>.
#* Replace <code>i</code> with the partition number you are unmounting.
# Enter <code>o</code>, then enter <code>n</code> and go through all the resulting prompts without changing settings.
# Type <code>fdisk /dev/<device name></code>.
# Type <code>o</code>, then type <code>n</code> and press ENTER on all prompts.
#* If it asks whether to remove a VFAT signature, choose to remove it.
#* If it asks whether to remove a VFAT signature, choose to remove it.
# Once you are back at fdisk's main menu, enter <code>t</code> and then enter <code>0c</code>
# Once you are back at fdisk's main menu, type <code>t</code> and then type <code>0c</code>.
# Enter <code>a</code> and then <code>p</code> - observe the output, and make sure the device is now formatted correctly: : {{#tag:syntaxhighlight|
# Type <code>a</code> and then <code>p</code>. Observe the output and make sure the device is now formatted correctly.
Disk /dev/mmcblk0: 29.72 GiB, 31914983424 bytes, 62333952 sectors
# If there are no issues, type <code>w</code>. This will save changes and exit the fdisk prompt.
Units: sectors of 1 * 512 = 512 bytes
# Type <code>sudo mkfs.vfat /dev/(device name) -s 64</code> to reformat the new partition.
Sector size (logical/physical): 512 bytes / 512 bytes
#* If the SD card is over 32GB in size, change </code>64</code> to <code>128</code>.
I/O size (minimum/optimal): 512 bytes / 512 bytes
# Type <code>sudo eject /dev/(device name)</code>, then remove and reinsert the SD card.
Disklabel type: dos
# Copy your data back onto the SD card.
Disk identifier: 0x########


Device                Boot  Start      End  Sectors  Size Id Type
=== GParted ===
/dev/<partition name>        8192 62333951 62325760 29.7G  c W95 FAT32 (LBA)
# Open GParted.
|lang=text}}
#* If you do not have GParted installed, install it using your package manager of choice, such as follows:
# If there are no issues, enter <code>w</code> - this will save changes and exit the fdisk prompt.
#** Debian-based: <code>sudo apt-get install gparted</code>
# Type <code>sudo mkfs.vfat /dev/<partition name> -s 64</code> to reformat the new partition.
#** Fedora-based: <code>sudo dnf install gparted</code>
#* If the SD card is over 32GB in size, change </code>64</code> to <code>128</code>
#** Arch-based: <code>sudo pacman -S gparted</code>
# Type <code>sudo eject /dev/<device name></code>, then remove and reinsert the SD card.
# Find your SD card in the drive list and select it.
# Open the Device tab and select "Create Partition Table..."
#* If this fails saying there are active partitions, open the Partition tab and select "Unmount".
# Select <code>msdos</code> partition type and click "Apply".
# Right-click on the new "unallocated" space and click "New".
# Change the filesystem to "fat32", and optionally choose any label that does not start with <code>3ds</code>. Leave all other settings intact.
# Click "Add", then press the "Apply All Operations" button and click "Apply".
# Close GParted, then remove and reinsert the SD card.
# Copy your data back onto the SD card.
# Copy your data back onto the SD card.
[[Category:General guides]]

Revision as of 22:40, 26 March 2023

This is an add-on section for completely recreating an SD card's filesystem using either fdisk and mkfs or GParted. This should only be done if formatting does not fix your issue or is not possible for some reason.

This page is for Linux users only. If you are not on Linux, see the Windows and/or Mac pages instead.

Instructions

OOjs UI icon information-warning.svg Before beginning these steps, copy all of your SD card's contents to a folder on your computer.

Command line

OOjs UI icon information-warning.svg The commands in this guide are case-sensitive. Enter them exactly as written, or there may be unintended consequences.
  1. Make sure your SD card is not inserted.
  2. Open a terminal window and type watch lsblk.
  3. Insert the SD card and watch for a new device appearing in lsblk.
    1. Observe the output for the new device. It should match something like this:
      NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
      mmcblk0     179:0    0   3,8G  0 disk
      └─mmcblk0p1 179:1    0   3,7G  0 part /run/media/user/FFFF-FFFF
      
  4. Take note of the name of the device that now appears. In our example above, it was mmcblk0p1.
    • If RO is set to 1, make sure the lock switch is not slid down.
  5. Hit CTRL + C to exit the menu.
  6. For each partition of the disk, type umount /dev/<device name>i.
    • Replace i with the partition number you are unmounting.
  7. Type fdisk /dev/<device name>.
  8. Type o, then type n and press ENTER on all prompts.
    • If it asks whether to remove a VFAT signature, choose to remove it.
  9. Once you are back at fdisk's main menu, type t and then type 0c.
  10. Type a and then p. Observe the output and make sure the device is now formatted correctly.
  11. If there are no issues, type w. This will save changes and exit the fdisk prompt.
  12. Type sudo mkfs.vfat /dev/(device name) -s 64 to reformat the new partition.
    • If the SD card is over 32GB in size, change 64 to 128.
  13. Type sudo eject /dev/(device name), then remove and reinsert the SD card.
  14. Copy your data back onto the SD card.

GParted

  1. Open GParted.
    • If you do not have GParted installed, install it using your package manager of choice, such as follows:
      • Debian-based: sudo apt-get install gparted
      • Fedora-based: sudo dnf install gparted
      • Arch-based: sudo pacman -S gparted
  2. Find your SD card in the drive list and select it.
  3. Open the Device tab and select "Create Partition Table..."
    • If this fails saying there are active partitions, open the Partition tab and select "Unmount".
  4. Select msdos partition type and click "Apply".
  5. Right-click on the new "unallocated" space and click "New".
  6. Change the filesystem to "fat32", and optionally choose any label that does not start with 3ds. Leave all other settings intact.
  7. Click "Add", then press the "Apply All Operations" button and click "Apply".
  8. Close GParted, then remove and reinsert the SD card.
  9. Copy your data back onto the SD card.