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

Module:FBI QR code and Formatting an SD card/Linux: Difference between pages

From Hacks Guide Wiki
(Difference between pages)
replace callParserFunction for #qrlite with expandTemplate for Template:Qrlite
 
Doge 2 (talk | contribs)
remove cfdisk, add guide for kde partition manager, do sd clean from beginning for fdisk
 
Line 1: Line 1:
local p = {}
This is an add-on section for formatting an SD card to FAT32.


-- from [[Module:Infobox]]
This page is for Linux users only. If you are not on Linux, check out the [[Special:MyLanguage/Formatting an SD card/Windows|Windows]] or [[Special:MyLanguage/Formatting an SD card/Mac|Mac]] pages.
-- Returns the union of the values of two tables, as a sequence.
local function union(t1, t2)


local vals = {}
== Instructions ==
for k, v in pairs(t1) do
{{warning|Before beginning these steps, copy all of your SD card's contents to a folder on your computer.}}
vals[v] = true
end
for k, v in pairs(t2) do
vals[v] = true
end
local ret = {}
for k, v in pairs(vals) do
table.insert(ret, k)
end
return ret
end


-- from [[Module:Infobox]]
{{warning|The commands in this guide are case-sensitive. Enter them exactly as written, or there may be unintended consequences.}}
-- Returns a table containing the numbers of the arguments that exist
<tabber>
-- for the specified prefix. For example, if the prefix was 'data', and
|-|fdisk=
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
local function getArgNums(prefix, args)
local nums = {}
for k, v in pairs(args) do
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
if num then table.insert(nums, tonumber(num)) end
end
table.sort(nums)
return nums
end


function p.makeSections(frame, args)
<span>
local sections = {}
# Make sure your SD card is '''not''' inserted
local nums = union(getArgNums('name', args), getArgNums('url', args))
# Open a terminal window and type <code>watch lsblk</code>
# Insert the SD card and watch for a new device appearing in lsblk
for k, v in ipairs(nums) do
# Observe the output for the new device. It should match something like this: {{#tag:syntaxhighlight|
local name = args['name' .. tostring(v)]
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
local url = args['url' .. tostring(v)]
mmcblk0    179:0    0 29.7G  0 disk
if name and url then
└─mmcblk0p1 179:1    0 29.5G  0 part /run/media/user/FFFF-FFFF
local qr = frame:expandTemplate( { title = 'qrlite', args = { url, format = 'png', margin = '3' } } )
|lang=text}}
table.insert(sections, {name, '<p class="hb-qrcode-image">'..qr..'</p><p class="hb-qrcode-link">['..url..' '..url..']</p>'})
# 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
end
#* If <code>RO</code> is set to 1, make sure the lock switch is not slid down
end
# Hit CTRL + C to exit the menu
# Type <code>sudo umount /dev/<device name>*</code> (do not replace the <code>*</code>)
return sections
# Install the <code>fdisk</code> and <code>dosfstools</code> packages using your package manager of choice
end
# Type <code>sudo fdisk /dev/<device name></code>
# Enter <code>o</code>, this will create a new MBR partition scheme
# Enter <code>n</code>, then press enter until you're returned to the prompt
#* The default values will work fine for all consoles
# Enter <code>t</code>, then enter <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|
Disk /dev/mmcblk0: 29.72 GiB, 31914983424 bytes, 62333952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x########


function p.makeTabberData(sections)
Device                Boot  Start      End  Sectors  Size Id Type
local finalSections = ''
/dev/<partition name>        8192 62333951 62325760 29.7G  c W95 FAT32 (LBA)
for k, v in ipairs(sections) do
|lang=text}}
finalSections = finalSections..'|-|'..v[1]..'='..v[2]
# If there are no issues, enter <code>w</code> - this will save changes and exit the fdisk prompt
end
# Type <code>sudo mkfs.vfat /dev/<partition name> -s 64</code> to reformat the new partition
#* If the SD card is over 32GB in size, change <code>64</code> to <code>128</code>
return finalSections
# Type <code>sudo eject /dev/<device name></code>, then remove and reinsert the SD card
end
# Copy your data back onto the SD card
</span>


function p.makeTabber(frame, sections)
return frame:callParserFunction('#tag', 'tabber', p.makeTabberData(sections))
end


function p.main(frame)
|-|parted=
local parent = frame:getParent()


local sections = p.makeSections(parent, parent.args)
<span>
return p.makeTabber(parent, sections)
# Make sure your SD card is '''not''' inserted
end
# Open a terminal window and type <code>watch lsblk</code>
# 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|
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0    179:0    0 29.7G  0 disk
└─mmcblk0p1 179:1    0 29.5G  0 part /run/media/user/FFFF-FFFF
|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
#* If <code>RO</code> is set to 1, make sure the lock switch is not slid down
# Hit CTRL + C to exit the menu
# Install the <code>parted</code> and <code>dosfstools</code> packages using your package manager of choice
# Type <code>sudo parted /dev/<device name> mklabel msdos</code>
# Type <code>sudo parted -a opt /dev/<device name> mkpart primary fat32 0% 100%</code>
# Type <code>sudo mkfs.vfat /dev/<partition name> -s 64</code> to reformat the new partition
#* If the SD card is over 32GB in size, change <code>64</code> to <code>128</code>
# Type <code>sudo eject /dev/<device name></code>, then remove and reinsert the SD card
# Copy your data back onto the SD card
</span>


function p.template(frame)
local args = {}
for k,v in pairs(frame.args) do args[k] = mw.text.trim(v) end
local sections = p.makeSections(frame, args)
return p.makeTabber(frame, sections)
end


return p
|-|KDE Partition Manager=
 
<span>
# Make sure your SD card is '''not''' inserted
# Open KDE Partition Manager, inputting your password as needed
# Insert your SD card and click <code>Refresh Devices</code>. The new device that shows up in the left pane is your SD card
# Click your SD card, then click the <code>New Partition Table</code> button at the top of the window
# When asked, choose <code>Ms-Dos</code>. Do '''NOT''' use <code>GPT</code>
#* [[File:KDE Partition Manager - MBR.png]]
# Right click the <code>unallocted</code> space in the right pane and select <code>New</code>
# When selecting your filesystem, choose <code>FAT32</code> from the drop down menu, it should look like this: [[File:KDE Partition Manager - New Partition.png]]
# Click <code>OK</code>, then click <code>Apply</code>, then <code>Apply Pending Operations</code>
# Eject and reinsert your SD card
# Copy your data back onto the SD card
</tabber>
{{hg imported|Guide_3DS}}
 
[[Category:General guides]]

Revision as of 00:15, 1 September 2024

This is an add-on section for formatting an SD card to FAT32.

This page is for Linux users only. If you are not on Linux, check out the Windows or Mac pages.

Instructions

Warning icon Before beginning these steps, copy all of your SD card's contents to a folder on your computer.
Warning icon 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
  4. 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 29.7G  0 disk 
    └─mmcblk0p1 179:1    0 29.5G  0 part /run/media/user/FFFF-FFFF
    
  5. Take note of the name of the device that now appears. In our example above, it was mmcblk0, but it could show up as sda or sdb, if you use a USB adapter
    • If RO is set to 1, make sure the lock switch is not slid down
  6. Hit CTRL + C to exit the menu
  7. Type sudo umount /dev/<device name>* (do not replace the *)
  8. Install the fdisk and dosfstools packages using your package manager of choice
  9. Type sudo fdisk /dev/<device name>
  10. Enter o, this will create a new MBR partition scheme
  11. Enter n, then press enter until you're returned to the prompt
    • The default values will work fine for all consoles
  12. Enter t, then enter 0c
  13. Enter a and then p - observe the output, and make sure the device is now formatted correctly:
    Disk /dev/mmcblk0: 29.72 GiB, 31914983424 bytes, 62333952 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x########
    
    Device                Boot  Start      End  Sectors  Size Id Type
    /dev/<partition name>        8192 62333951 62325760 29.7G  c W95 FAT32 (LBA)
    
  14. If there are no issues, enter w - this will save changes and exit the fdisk prompt
  15. Type sudo mkfs.vfat /dev/<partition name> -s 64 to reformat the new partition
    • If the SD card is over 32GB in size, change 64 to 128
  16. Type sudo eject /dev/<device name>, then remove and reinsert the SD card
  17. Copy your data back onto the SD card

  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
  4. 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 29.7G  0 disk 
    └─mmcblk0p1 179:1    0 29.5G  0 part /run/media/user/FFFF-FFFF
    
  5. Take note of the name of the device that now appears. In our example above, it was mmcblk0, but it could show up as sda or sdb, if you use a USB adapter
    • If RO is set to 1, make sure the lock switch is not slid down
  6. Hit CTRL + C to exit the menu
  7. Install the parted and dosfstools packages using your package manager of choice
  8. Type sudo parted /dev/<device name> mklabel msdos
  9. Type sudo parted -a opt /dev/<device name> mkpart primary fat32 0% 100%
  10. Type sudo mkfs.vfat /dev/<partition name> -s 64 to reformat the new partition
    • If the SD card is over 32GB in size, change 64 to 128
  11. Type sudo eject /dev/<device name>, then remove and reinsert the SD card
  12. Copy your data back onto the SD card

  1. Make sure your SD card is not inserted
  2. Open KDE Partition Manager, inputting your password as needed
  3. Insert your SD card and click Refresh Devices. The new device that shows up in the left pane is your SD card
  4. Click your SD card, then click the New Partition Table button at the top of the window
  5. When asked, choose Ms-Dos. Do NOT use GPT
  6. Right click the unallocted space in the right pane and select New
  7. When selecting your filesystem, choose FAT32 from the drop down menu, it should look like this:
  8. Click OK, then click Apply, then Apply Pending Operations
  9. Eject and reinsert your SD card
  10. Copy your data back onto the SD card