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