Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "chroot"
-
So I had to chroot into my system (I fucked up). Plugged in my backup arch live USB and then suddenly... What the actual fuck? I guess somebody borrowed my drive and used it for barbaric purposes13
-
I was joking with my colleague what is the best comment for this if hell.
And now my boss send me this 🤣🤣🤣8 -
(Written March 13th at 2am.)
This morning (yesterday), my computer decided not to boot again: it halts on "cannot find firmware rtl-whatever" every time. (it has booted just fine several times since removing the firmware.) I've had quite the ordeal today trying to fix it, and every freaking step along the way has thrown errors and/or required workarounds and a lot of research.
Let's make a list of everything that went wrong!
1) Live CD: 2yo had been playing with it, and lost it. Not easy to find, and super smudgy.
2) Unencrypt volume: Dolphin reports errors when decrypting the volume. Research reveals the Live CD doesn't incude the cryptsetup packages. First attempts at installing them mysteriously fail.
3) Break for Lunch: automatic powersaving features turned off the displays, and also killed my session.
4) Live CD redux: 25min phonecall from work! yay, more things added to my six-month backlog.
5) Mount encrypted volume: Dolphin doesn't know how, and neither do I. Research ensues. Missing LVM2 package; lvmetad connection failure ad nauseam; had to look up commands to unlock, clone, open, and mount encrypted Luks volume, and how to perform these actions on Debian instead of Ubuntu/Kali. This group of steps took four hours.
6) Chroot into mounted volume group: No DNS! Research reveals how to share the host's resolv with the chroot.
7) `# apt install firmware-realtek`: /boot/initrd.img does not exist. Cannot update.
8) Find and mount /boot, then reinstall firmware: Apt cannot write to its log (minor), listed three install warnings, and initially refused to write to /boot/initrd.img-[...]
9) Reboot!: Volume group not found. Cannot process volume group. Dropping to a shell! oh no..
(Not listed: much research, many repeated attempts with various changes.)
At this point it's been 9 hours. I'm exhausted and frustrated and running out of ideas, so I ask @perfectasshole for help.
He walks me through some debugging steps (most of which i've already done), and we both get frustrated because everything looks correct but isn't working.
10) Thirteenth coming of the Live CD: `update-initramfs -u` within chroot throws warnings about /etc/crypttab and fsck, but everything looks fine with both. Still won't boot. Editing grub config manually to use the new volume group name likewise produces no boots. Nothing is making sense.
11) Rename volume group: doubles -'s for whatever reason; Rebooting gives the same dreaded "dropping to a shell" result.
A huge thank-you to @perfectasshole for spending three hours fighting with this issue with me! I finally fixed it about half an hour after he went to bed.
After renaming the volume group to what it was originally, one of the three recovery modes managed to actually boot and load the volume. From there I was able to run `update-initramfs -u` from the system proper (which completed without issue) and was able to boot normally thereafter.
I've run updates and rebooted twice now.
After twelve+ hours... yay, I have my Debian back!
oof.rant nightmare luks i'm friends with grub and chroot now realtek realshit at least my computer works again :< initrd boot failure9 -
This rant is particularly directed at web designers, front-end developers. If you match that, please do take a few minutes to read it, and read it once again.
Web 2.0. It's something that I hate. Particularly because the directive amongst webdesigners seems to be "client has plenty of resources anyway, and if they don't, they'll buy more anyway". I'd like to debunk that with an analogy that I've been thinking about for a while.
I've got one server in my home, with 8GB of RAM, 4 cores and ~4TB of storage. On it I'm running Proxmox, which is currently using about 4GB of RAM for about a dozen VM's and LXC containers. The VM's take the most RAM by far, while the LXC's are just glorified chroots (which nonetheless I find very intriguing due to their ability to run unprivileged). Average LXC takes just 60MB RAM, the amount for an init, the shell and the service(s) running in this LXC. Just like a chroot, but better.
On that host I expect to be able to run about 20-30 guests at this rate. On 4 cores and 8GB RAM. More extensive migration to LXC will improve this number over time. However, I'd like to go further. Once I've been able to build a Linux which was just a kernel and busybox, backed by the musl C library. The thing consumed only 13MB of RAM, which was a VM with its whole 13MB of RAM consumption being dedicated entirely to the kernel. I could probably optimize it further with modularization, but at the time I didn't due to its experimental nature. On a chroot, the kernel of the host is used, meaning that said setup in a chroot would border near the kB's of RAM consumption. The busybox shell would be its most important RAM consumer, which is negligible.
I don't want to settle with 20-30 VM's. I want to settle with hundreds or even thousands of LXC's on 8GB of RAM, as I've seen first-hand with my own builds that it's possible. That's something that's very important in webdesign. Browsers aren't all that different. More often than not, your website will share its resources with about 50-100 other tabs, because users forget to close their old tabs, are power users, looking things up on Stack Overflow, or whatever. Therefore that 8GB of RAM now reduces itself to about 80MB only. And then you've got modern web browsers which allocate their own process for each tab (at a certain amount, it seems to be limited at about 20-30 processes, but still).. and all of its memory required to render yours is duplicated into your designated 80MB. Let's say that 10MB is available for the website at most. This is a very liberal amount for a webserver to deal with per request, so let's stick with that, although in reality it'd probably be less.
10MB, the available RAM for the website you're trying to show. Of course, the total RAM of the user is comparatively huge, but your own chunk is much smaller than that. Optimization is key. Does your website really need that amount? In third-world countries where the internet bandwidth is still in the order of kB/s, 10MB is *very* liberal. Back in 2014 when I got into technology and webdesign, there was this rule of thumb that 7 seconds is usually when visitors click away. That'd translate into.. let's say, 10kB/s for third-world countries? 7 seconds makes that 70kB of available network bandwidth.
Web 2.0, taking 30+ seconds to load a web page, even on a broadband connection? Totally ridiculous. Make your website as fast as it can be, after all you're playing along with 50-100 other tabs. The faster, the better. The more lightweight, the better. If at all possible, please pursue this goal and make the Web a better place. Efficiency matters.9 -
* Chuck Norris once installed windows in his PC.
* After 12 hours of updating, windows uninstalled itself.2 -
So probably about a decade ago at this point I was working for free for a friend's start-up hosting company. He had rented out a high-end server in some data center and sold out virtualized chunks to clients.
This is back when you had only a few options for running virtual servers, but the market was taking off like a bat out of hell. In our case, we used User-Mode Linux (UML).
UML is essentially a kernel hack that lets you run the kernel in user space. That alone helps keep things separate or jailed. I'm pretty sure some of you can shed more light on it, but that's as I understood it at the time and I wasn't too shabby at hacking the kernel when we'd have driver issues.
Anyway, one of the ways my friend would on-board someone was to generate a new disk image file, mount it, and then chroot to that mount path. He'd basically use a stock image to do this and then wipe it out before putting it live.
I'm not sure exactly what he was doing at the time, but I got a panicked message on New Years Day saying that he had deleted everything. By everything, he had done an rm -fr /home as root on what he had thought was the root of a drive image.
It wasn't an image. It was the host server.
In the stoke of a single command, all user data was lost. We were pretty much screwed, but I have a knack for not giving up - so I spent a ton of time investigating linux file recovery.
Fun fact about UML - since the kernel runs in user space as a regular ol' process, anything it opens is attached to that process. I had noticed that while the files were "gone", I could still see disk usage. I ended up finding the images attached to their file pointers associated with each running kernel - and thankfully all customers were running at the time.
The next part was crazy, and I still think is crazy. I don't remember the command, but I had to essentially copy the image from the referenced path into a new image file, then shutdown the kernel and power it back on from the new image. We had configs all set aside, so that was easy. When it finally worked I was floored.
Rinse and repeat, I managed to drag every last missing bit out of /proc - with the only side effect being that all MySQL databases needed to be cleaned up.3 -
Recently I fucked up my laptop's rootfs USB stick again by tugging on it with some wire.. I think it got detached during runtime. Doesn't boot anymore.
So I attached it to my server to chroot into it and see what's wrong..
# cryptsetup luksOpen /dev/sdf2 cryptroot
> Unlocks without errors.
# btrfsck /dev/mapper/cryptroot
> Nothing wrong.
# mount /dev/mapper/cryptroot /mnt
> Mounts just fine.
# chroot /mnt (some other filesystems like /proc, /sys, and /dev were mounted first but meh)
> Enters chroot just fine.
# pacman -Syu
> Upgrades just fine.
# su condor
> Switches user just fine.
$ vim -p some files
> Enters the editor just fine.
Mounted it again to my laptop and try to boot, because it clearly seems like everything is just fine..
> Not gonna boot up. You can unlock your cryptroot and then I'll just fucking stall without saying shit.
MotherFFFFUUUUCCKKKEERRRRRRR!!!!!!! Fuck you HP for making such horrible USB connectors, and fuck you Arch for not giving something more verbose related to the issue, so that I can actually know what's wrong with you, and fucking FIX IT!!! Fucking pieces of junk! Do I really have to build my own PC and build my own LFS, just to have something halfway decent?!3 -
Today my raspberry pi media center bricked itself (at least it won't boot properly. Than I thought I just format the SD card and reinstall everything. But than my windows pc won't boot properly because it's still running on old hdd and I suck at building PCs. Than I tried my ThinkPad with antergos and remembered that it is also dead because the last update broke something. And now I'm trying to boot my windows at least into safe mode and my ThinkPad to boot from the live stick to chroot and fix it. Still waiting since 15min for any progress.
Now is my old Oneplus One with an outdated nightly of a custom Rom my only working connection to the web.
I'm starting to think that waiting for the last minute to fix problems might not the best way for me.10 -
Long rant ahead.. 5k characters pretty much completely used. So feel free to have another cup of coffee and have a seat 🙂
So.. a while back this flash drive was stolen from me, right. Well it turns out that other than me, the other guy in that incident also got to the police 😃
Now, let me explain the smiley face. At the time of the incident I was completely at fault. I had no real reason to throw a punch at this guy and my only "excuse" would be that I was drunk as fuck - I've never drank so much as I did that day. Needless to say, not a very good excuse and I don't treat it as such.
But that guy and whoever else it was that he was with, that was the guy (or at least part of the group that did) that stole that flash drive from me.
Context: https://devrant.com/rants/2049733 and https://devrant.com/rants/2088970
So that's great! I thought that I'd lost this flash drive and most importantly the data on it forever. But just this Friday evening as I was meeting with my friend to buy some illicit electronics (high voltage, low frequency arc generators if you catch my drift), a policeman came along and told me about that other guy filing a report as well, with apparently much of the blame now lying on his side due to him having punched me right into the hospital.
So I told the cop, well most of the blame is on me really, I shouldn't have started that fight to begin with, and for that matter not have drunk that much, yada yada yada.. anyway he walked away (good grief, as I was having that friend on visit to purchase those electronics at that exact time!) and he said that this case could just be classified then. Maybe just come along next week to the police office to file a proper explanation but maybe even that won't be needed.
So yeah, great. But for me there's more in it of course - that other guy knows more about that flash drive and the data on it that I care about. So I figured, let's go to the police office and arrange an appointment with this guy. And I got thinking about the technicalities for if I see that drive back and want to recover its data.
So I've got 2 phones, 1 rooted but reliant on the other one that's unrooted for a data connection to my home (because Android Q, and no bootable TWRP available for it yet). And theoretically a laptop that I can put Arch on it no problem but its display backlight is cooked. So if I want to bring that one I'd have to rely on a display from them. Good luck getting that done. No option. And then there's a flash drive that I can bake up with a portable Arch install that I can sideload from one of their machines but on that.. even more so - good luck getting that done. So my phones are my only option.
Just to be clear, the technical challenge is to read that flash drive and get as much data off of it as possible. The drive is 32GB large and has about 16GB used. So I'll need at least that much on whatever I decide to store a copy on, assuming unchanged contents (unlikely). My Nexus 6P with a VPN profile to connect to my home network has 32GB of storage. So theoretically I could use dd and pipe it to gzip to compress the zeroes. That'd give me a resulting file that's close to the actual usage on the flash drive in size. But just in case.. my OnePlus 6T has 256GB of storage but it's got no root access.. so I don't have block access to an attached flash drive from it. Worst case I'd have to open a WiFi hotspot to it and get an sshd going for the Nexus to connect to.
And there we have it! A large storage device, no root access, that nonetheless can make use of something else that doesn't have the storage but satisfies the other requirements.
And then we have things like parted to read out the partition table (and if unchanged, cryptsetup to read out LUKS). Now, I don't know if Termux has these and frankly I don't care. What I need for that is a chroot. But I can't just install Arch x86_64 on a flash drive and plug it into my phone. Linux Deploy to the rescue! 😁
It can make chrooted installations of common distributions on arm64, and it comes extremely close to actual Linux. With some Linux magic I could make that able to read the block device from Android and do all the required sorcery with it. Just a USB-C to 3x USB-A hub required (which I have), with the target flash drive and one to store my chroot on, connected to my Nexus. And fixed!
Let's see if I can get that flash drive back!
P.S.: if you're into electronics and worried about getting stuff like this stolen, customize it. I happen to know one particular property of that flash drive that I can use for verification, although it wasn't explicitly customized. But for instance in that flash drive there was a decorative LED. Those are current limited by a resistor. Factory default can be say 200 ohm - replace it with one with a higher value. That way you can without any doubt verify it to be yours. Along with other extra security additions, this is one of the things I'll be adding to my "keychain v2".11 -
Fuck graphical installers and their bullshit, installed a perfectly working luks encrypted arch install on my usb stick and got most things setup too already.
Next I need to makepkgchroot yay into it - for now I've had to use yaourt, also can't boot off of it, because I didn't yet figure out how to do the grub uefi shit inside of it - which isn't really necesssary as I plan to use it just as a chroot slave anyway, but useful for when I would have to rescue my laptop or something.1 -
- Rooted phone
- Blocked certain apps from obtaining permissions
- Blocked apps from preventing taking screenshots
- Hid the annoying Google search bar
- Installed Debian/Ubuntu in a chroot inside the phone
- Installed vim, git and more inside the chroot
Ahhh, feels so good6 -
When you're developing it's very well advised to run your software locally in an environment as much as possible matching the real environment.
So for example, if you're running linux on production then you also run it locally to run your code.
Here's where people need to shut the fuck up:
No, mac is not good for linux development. Not unless portability is already a concern that you have and even then it might be counter productive. So many times when people say this, portability isn't not a concern. What runs on servers is up to them.
If your servers are going to be centos, then you develop with centos. Not with debian, gentoo, ubuntu, maxosx, etc.
Even different linux distros are a headache for portability when it's just to support a few desktops for development so don't think that macosx is going to cut it. It might not be as radical a difference as between windows and linux traditionally is but it's still not good for "linux" development. I don't think people making that statement really know what linux is now how different distributions work.
What you use for your graphical operating system doesn't matter to much but when you run your code then there's a simple solution.
Another thing people need to shut up about. It's not docker, unless you're already in Linux where docker is one of many options such as chroot or lxc.
This question always comes up, how do you developer for linux in windows? No it's not docker it's virtual machine.
It's that simple. You download the ISO for the distro you want and then install it on a VM. What does docker for windows do? It runs a linux VM that runs docker.
This may come as a great shock to developers around the world but it is possible to run linux in a VM and then any linux application your want including docker.
Another option is to shove a box in the corner, install what you need on it, share the file system and have people use that to run their code. It really is that easy.6 -
I was scared shitless while installing the windows creator, that it might shit on my grub like the anniversary update did! I had to chroot, reinstall bootloader, and run mkinitcpio to rebuild boot and kernel images. But thankfully everything went on smoothly this time!11
-
IPMI...
2010....
Java Web...
Oracle JDK needed....
Oracle JDK Download requires Oracle Account..... To circumvent as I don't want a motherfugging shitty oracle account tons of googling and loading shit from not so trustful pages.
TLS 1.0 and WebJDK require Internet Explorer.....
And an even older version of Oracle JDK 8....
Broken keyboard input....
As on Laptop for Windows / Internet Explorer additionally struggling with keyboard...
Mounting SMB Share requires password change, as my password contains invalid characters....
Finally getting shit to load GParted...
Taking fucking ages to load.
Broken keyboard input, no pasting.....
Chrooting / input becomes a 15 min exercise.
Actual input necessary on chroot: 1 command.
Actual time needed to get there : 2 1/2 h.
*sigh*
When that one old machine dies noone was aware of. And this one old machine is only accessible via an IPMI... As noone even knows where that machine is.
Weekend dead. Weekend is so fucking dead and overrated.2 -
Arch linux, iscript.sh
----------------------------------------------
#/bin/bash
mkdir /tmpdir
arch-chroot /tmpdir
pacman -S base
wget https://path-to-scri.pt/
bash iscript.sh5 -
Guys I'm very bad at staying focused on one thing.
For a bit, I've been learning web development, and I've been working on a page for myself. Past few days I haven't really done anything because I'm trying to actually fucking graduate high school and as of right now I am NOT graduating.
But today I was taking my calculus final and I ended up talking to the teacher for a bit. He said he has an older tablet that he's trying to turn into a type of wall mounted home automation system. I believe he said something about using essentially a minimal Linux install to do it.
That really got me thinking, because I had a fairly similar idea a while ago (not exactly home automation, but just using an old tablet as a small Linux device), but never put in any actual effort to get it done. Now with winter break coming up for me, I really want to try and work on it some.
So before I start doing a fuckton of research on this, has anyone here ever done something similar to an Android device? I'm not talking about using that Linux Deploy app or a chroot. I'm talking about basically removing the Android environment, taking it down to a base Linux install. I just want to know if anyone can steer me in the right direction to save me some time3 -
Just finished setting up my new mobile workstation (not a desktop killer unfortunately).
Have i3 booted on a chroot and configured and ready to get cracking for the night :D3 -
So today my colleague is installing new dependency to our react native project and do something cool with it.
Him: I already push it in new branch and make a pr, would you review and merge it to master.
Me: ok let me try first.
.
.
Me: it is not working, i get this error.
Him: try change these xxx in xcode.
Me: ok, wait.
.
.
Me: now I get this error
Him: hmm... Try 'react-native link xxxx'
Me: ok
.
.
Me: I get same error like first error.
Him: now try 'react-native unlink xxxx'
Me: hmm... Wait.
.
.
Me: I still get same error, what's wrong?
Him: I don't know, it's working in my mechine .
*Me 'git reset - - hard' and try to build again.
**After building
Me: hey it's working after I git reset lol.
Him: nice
Me: let me clone it and try 1 more time.
*after cloning and building
.
.
Me: I still get same error like 1st error hahaha.
Him: so try to 'react-native link xxx' again.
Me: OKkK
.
.
Me: still get same error
Him: try git reset and build again
Me: hmm
.
.
*after git reset and build again
Me: I still get same error. I think the correct steps is :
1. Clone
2. Do something in xcode
3. React native link
4. React native unlink
5. Git reset - - hard
6. Build
I can't stop laughing 😂🤣😂🤣🤣😂🤣😂 -
Been using linux for long time and now moving to mac. I must say I really miss windows blue screen 🤧4
-
So I have null, null, null and null message(sms) quota 🤔
* Who still use sms in 2017? Well I still use it11 -
Been trying to install myself a gentoo but it's been more like the mode of broken packages than the godmode of Linux... I mean I see that some packages break if I am trying to compile via musl (not fully supported yet) or via uclibc. But please. CAN'T YOU JUST FUCKING TEST THE PACKAGES BEFORE PUSHING TO LIVE? Seriously. I just wanna install a system with i3 and lightdm for the first. But do you think I could build even the first 20 packages WITHOUT A FUCKING ERROR MESSAGE?! FUCK NO. I mean it's a clean install - nothing should be blocking - let's wait a day.
*one day later*
Fuck. Shit doesn't work now either.
*gets himself a new tarball*
Wow now it works.... Or not. 4 packages later it failed again. And like that it continues.
Gentoo isn't even running on that new software. BUT IT STILL WON'T BUILD ANYTHING TO EVEN LET ME CONTINUE BUILDING A FUCKING KERNEL AND SETTING THAT SHIT UP.
Now I am totally frustrated - deleted my efivars once because I forgot to unmount /sys from the Chroot - after a few days of trying. I tell myself: Why not just arch? It always worked.
Okay then reboot to windows and get an arch-livesystem.... If only my Windows didn't boot entry disappear again. -
Feels pretty good when you chroot into your first LFS enviornment and nothing breaks (yet..). Also my toolchain seems to be compiling packages correctly so that's a plus :)
-
Any react native or godot dev here? I just want to ask a question, is macbook air good enough for react native and godot development?
Good enough for react native is it can open xcode, vscode, chrome, and ios simulator at same time without any problems. And for godot, I don't know I never use godot before 😁 but I really want to make a game using godot.11 -
Don't you hate when you wanna install arch on your 6 year old laptop but it turns out it's uefi when you have already made partitions that is ext4 when you should have made it fat and then when you remove the partitions and do everything all over again you get some bullshit error when trying to use arch-chroot!
-
Wanted to "rm -rf /" a chroot but I forgot arch-chroot also mounts proc/, sys/ and run/ ...
So now I'm doomed4 -
Well fucking shit, I built util-linux from source and restarted my Debian installation without knowing that mount needed new libraries, so I can't fix it from the install itself because mount no longer works properly and and the root partition mounts as read only. My only hope is to take the SSD out and put it in my laptop (The BIOS on this machine doesn't like booting from external drives for some reason...), boot from a recovery disk, chroot, and re-install util-linux that way.2
-
It only takes three commands to install Gentoo:
> cfdisk /dev/hda && mkfs.xfs /dev/hda1 && mount /dev/hda1 /mnt/gentoo/ && chroot /mnt/gentoo/ && env-update && . /etc/profile && emerge sync && cd /usr/portage && scripts/bootsrap.sh && emerge system && emerge vim && vi /etc/fstab && emerge gentoo-dev-sources && cd /usr/src/linux && make menuconfig && make install modules_install && emerge gnome mozilla-firefox openoffice && emerge grub && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vi /boot/grub/grub.conf && grub && init 6
that's the first one2 -
Aw the beauty of chroot
Now if only I knew how yo setup an efi partition and grub for a specific mounted disk img to a specific booy partition!