|
|
| 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]] |