this post was submitted on 05 Dec 2023
954 points (98.7% liked)

linuxmemes

25623 readers
2079 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack users for any reason. This includes using blanket terms, like "every user of thing".
  • Don't get baited into back-and-forth insults. We are not animals.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn, no politics, no trolling or ragebaiting.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, <loves/tolerates/hates> systemd, and wants to interject for a moment. You can stop now.
  • 5. πŸ‡¬πŸ‡§ Language/язык/Sprache
  • This is primarily an English-speaking community. πŸ‡¬πŸ‡§πŸ‡¦πŸ‡ΊπŸ‡ΊπŸ‡Έ
  • Comments written in other languages are allowed.
  • The substance of a post should be comprehensible for people who only speak English.
  • Titles and post bodies written in other languages will be allowed, but only as long as the above rule is observed.
  • 6. (NEW!) Regarding public figuresWe all have our opinions, and certain public figures can be divisive. Keep in mind that this is a community for memes and light-hearted fun, not for airing grievances or leveling accusations.
  • Keep discussions polite and free of disparagement.
  • We are never in possession of all of the facts. Defamatory comments will not be tolerated.
  • Discussions that get too heated will be locked and offending comments removed.
  • Β 

    Please report posts and comments that break these rules!


    Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't remove France.

    founded 2 years ago
    MODERATORS
     

    shamelessly stolen from nixCraft on mastodon

    all 50 comments
    sorted by: hot top controversial new old
    [–] [email protected] 110 points 2 years ago

    Your USB is probably named '/' or '~' so give that a go.

    [–] [email protected] 74 points 2 years ago (2 children)

    When you hit enter on the DD command, and your main storage light suddenly starts flashing.

    [–] [email protected] 52 points 2 years ago (2 children)

    When you hit enter on the DD command, and your eyes suddenly start flashing.

    [–] [email protected] 55 points 2 years ago* (last edited 2 years ago)

    Little Jimmy wanted to try Fedora, But little Jimmy is no more. For what he thought was his external drive, was actually his cerebral core

    [–] [email protected] 3 points 2 years ago (2 children)
    [–] [email protected] 3 points 2 years ago

    Here is an alternative Piped link(s):

    https://www.piped.video/watch?v=ajW2fDy41fY

    Piped is a privacy-respecting open-source alternative frontend to YouTube.

    I'm open-source; check me out at GitHub.

    [–] [email protected] 2 points 2 years ago

    That was great :D though I'm afraid that this is kind of me, considering I have a file server on my vacuum robot

    [–] [email protected] 7 points 2 years ago* (last edited 2 years ago) (1 children)

    So? I'm just creating an 8 GiB swap file.

    [–] [email protected] 6 points 2 years ago (1 children)

    Try btrfs, where with only 5 hours of research you can create a swap file without writing the entire file.
    Also there is no other option, the 5h are non-optional.

    After doing that twice, In my / now lives

    /swapfile-howto

    # this is btrfs not a normal file system.
    # We have to create and allocate the file in a btrfs friendly way,
    # and tell btrfs to not move or segment it.
    
    touch /swapfile999
    chmod 600 /swapfile999
    truncate -s 0 /swapfile999
    chattr +C /swapfile999
    fallocate -l 999G /swapfile999
    mkswap /swapfile999
    swapon /swapfile999 -p 200
    

    [–] [email protected] 11 points 2 years ago (1 children)

    I admire your dedication, but you really could've just done this

    btrfs fi mkswapfile --size 16G /swap
    swapon /swap
    
    [–] [email protected] 7 points 2 years ago

    Huh, thank you for telling me, I'll amend the file with that info. This being a thing will probably spare many the troubles I experienced.

    I did some digging to reconstruct what happened in my case. The file was created on 2022-12-08, and I remember this being after I rediscovered my earlier approach, from - going by my browsing history - mid september 2022. I worked through plenty of wiki pages at the time, including the btrfs docs on swapfiles, where I probably got my commands. The truncate in there to fix earlier mistakes is something I would keep in, but not add myself, so I must have copied that pages solution. Interestingly, going by archive.org, between dec 02 and dec 13 the documentation on btrfs fi mkswapfile was added to that page.
    I am in no way confident in my memory here, but I vaguely recall seeing that command, and being somewhat surprised to not remember it from earlier. That confusion may have even contributed to pushing me to create the file.
    Had I seen it, I probably would have tried the command and seen it not exist. Following the note of btrfs 6.1 being required, I would have checked the version and seen that my distro didn't have btrfs-progs 6.1, not even as an alpha on the development channel.
    I may also have remembered there being multiple commands needed earlier, and not wanting to deviate from the proven method dismissed the apparently simpler method.

    To complete this very meaningful and productive story, on 2022-12-23 my distro got the early christmas present of btrfs-progs 6.1 as an unstable release in the dev channel. After many retractions and republishings of a total of 4 subversions, on 2023-03-04 the first stable release of 6.1.x was made available.

    I was 6 months early. Or rather the btrfs devs were 6 months late.

    Edit (actually not edit because I didn't send yet):
    I actually checked the repo and the documentation changed on dec 06. Here is the commit. The corresponding release occurred on dec 22.
    Dumping 30mins into writing this actually resulted with a memorable story. By chance I stumbled over the documentation of a new feature, 2 days after it had been written, but 2 weeks before even the first alpha release containing it was created.

    [–] [email protected] 72 points 2 years ago (3 children)

    You used something called disk destroyer, and you just found out why

    load more comments (3 replies)
    [–] [email protected] 51 points 2 years ago (4 children)
    [–] [email protected] 8 points 2 years ago

    That was an interesting read, thank you!

    [–] [email protected] 7 points 2 years ago

    I haven't touched dd since I read that about a year ago, super interesting!

    For people that use dd because they like the progress bar, I highly recommend pv.

    [–] [email protected] 5 points 2 years ago* (last edited 2 years ago) (1 children)

    Except the proposed alternative should not be cp or pv, but dd bs=4M oflag=direct,sync status=progress.

    I feel like I'm taking crazy pills with all the advice in this thread, because for USB keys you will otherwise end up instantly filling the write cache... which will block the apparent progress of the copy operation (so why even use pv since all you're doing is measuring your RAM speed and available cache size) as well as heavily slow down (even potentially partially freeze in some circumstances) the rest of your system as the kernel is running out of free pages and can't flush caches fast enough due to the slow-ass write speeds of usb keys.

    * (Alternatively there is a kernel setting somewhere to disable caching globally for a block device... but in most cases caching is good, just not when you're flashing an ISO).

    [–] [email protected] 1 points 2 years ago* (last edited 2 years ago) (1 children)

    so why even use pv since all you're doing is measuring your RAM speed and available cache size

    This is probably why pv progress fills in a second but is only done after a few minutes. Nonetheless, shell redirect, cat, cp work fine and handle blocksize and cache dynamically.

    Your worst case scenario never happened to me after years of using pv/cp for flashing sticks/overwriting/copying partitions, even with some ...risky mount settings. Honestly doesn't make much sense to me either. Again, dd isn't some sort of magical safe handle to make the process progress smoothly. Like i use to say, dd is a skalpell, not a shovel.

    [–] [email protected] 2 points 2 years ago

    I mean yeah, the bits end up where they should. It's just that the speed/progress indication is near useless with pv since at the end of the copy you still need to wait for the entire write buffer to be flushed (2 GiB in my experience, which can take several minutes).

    So IMO dd with at least oflag=osync,odirect is safer than cp and pv with which a newbie might forget to run sync and unplug the usb key immediately, so they'll be missing a lot of data.

    Maybe some people use dd for the wrong reason, it's their problem, but the solution is to use dd bs=4M oflag=osync,odirect, not to use cp.

    [–] [email protected] 1 points 2 years ago* (last edited 2 years ago)

    It was less useless for that purpose when cp and cat were less I/O efficient compared to dd with the appropriate block size, which isn't as much the case now as it used to be.

    [–] [email protected] 48 points 2 years ago (3 children)

    Another advantage of having a NVMe SSD, hard to confuse /dev/nvme0n1p2 with /dev/sda1

    [–] [email protected] 16 points 2 years ago (3 children)

    It's even easier to prevent confusion if you use /dev/disk/by-id/ id's, it only took a few times of overwriting the wrong disk to figure that out.

    [–] [email protected] 4 points 2 years ago

    I think that does the opposite for me lol

    [–] [email protected] 2 points 2 years ago (3 children)

    How can I figure out which direct device is associated with a specific id?

    [–] [email protected] 6 points 2 years ago

    They're symlinks, so you can just ls -l /dev/disk/by-id, and you can see what is what.

    [–] [email protected] 6 points 2 years ago

    Not sure if it is equal on all distros but on every one I have used it's a readable string of muliple components. One of them is "usb" for a usb mass storage, so if it is the only one you have connected to your computer it is very obvious. For like sata disks it has the manufacturer and serial on it so you can match what drive it is you want to write to. Also, the name is pretty unique (on your sysytem at least, globally I don't know), so even if you swap hardware around, you cannot write to the wrong storage if you got the right name. Like "sdb" can be reassigned, but the id is an id.

    [–] [email protected] 3 points 2 years ago* (last edited 2 years ago)

    Λ‹blkidΛ‹ or take a look around /dev, devices are symlinked to their various attributes.

    [–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

    When I accidentally decimated my external hard drive, it had NTFS cause there were a few windows machines I would plug it in. Then I reformatted the disk but then I thought to myself, should I have another partition for my Linux machine because that drive gets corrupted and then I need to plug to a Windows machine to repair it once in a while. Then I created an ext4 partition on the disk. Then a few days after I shrinked the NTFS partition and extended the ext4 to the whole disk. Now that disk only has one partition called sda2. Which is kinda weird but makes it easier to distinguish from others disks on the system.

    [–] [email protected] 7 points 2 years ago

    I just make use of my paranoia, so I triple and quadruple check. Then get a coffee and quadruple check again. Never messed up once

    [–] [email protected] 6 points 2 years ago

    Even if it's similar names I'd normally plug in USB, do dmesg, then issue a command with latest device name.

    [–] [email protected] 45 points 2 years ago (4 children)

    Fun fact: you can use cat image.iso > /dev/device and it (should) just works.

    [–] [email protected] 52 points 2 years ago

    Yay, more ways to (accidentally) destroy my data!

    [–] [email protected] 8 points 2 years ago

    Or pv if you want a progress bar.

    [–] [email protected] 3 points 2 years ago* (last edited 2 years ago)

    Assuming /dev/device is not a symbolic link, you might as well

    cp image.iso /dev/device
    [–] [email protected] 2 points 2 years ago

    Sure, if you're a little bitch.

    [–] [email protected] 21 points 2 years ago (1 children)

    I always use the status=progress argument.

    [–] [email protected] 31 points 2 years ago (1 children)

    That ain't why that light isn't blinking.

    [–] [email protected] 7 points 2 years ago

    Because this USB stick doesn't have light

    [–] [email protected] 18 points 2 years ago

    Anyone who hits enter on a dd command without triple-checking it gets exactly what they deserve.

    [–] [email protected] 14 points 2 years ago

    I always prefer the bulkier /dev/disk/by-id/ symlinks because of this

    [–] [email protected] 12 points 2 years ago

    Be me

    Want to install archlinux just to try it

    Accidentally installed archlinux live environment on my main hard disk using dd

    [–] [email protected] 7 points 2 years ago

    Goofoyou, goofoyou!