Search This Blog

Tuesday, November 3, 2015

Resizing a VirtualBox Windows 7 drive

I originally allocated 30 GB for use as a Windows 7 virtual drive using Oracle's VirtualBox software. I then installed the baseline software: Comodo Anti-Virus, Firefox, and various Windows updates (read: hours of time wasted while watching "Please wait while Windows installs 1 of 238248 updates", etc.). 

"Features" is probably used too liberally

Once I had a good working Windows 7, I created a snapshot to come back to, should something go awry in the future. Once that was done, I installed SketchUp for my woodworking projects and some common access card reader software for my work stuffs (Navy websites). All was working well until this morning when I wanted to install the Home Remote Developer package to design a custom home automation interface. I was hit with "This program requires 2048 MB to install and you have [some random amount lower than this] remaining. Do you want to continue?"  Nope, I would not like to continue. I would like to find out why Windows thinks it needs so much space (30 GB, really?) to operate with a handful of programs installed. I went in to the Add/Remove programs to verify that, yep, I only had the aforementioned programs installed. So I went to disable Windows "features" and removed games, tablet services, and some other useless checkboxes, restarted, and now had even less space (originally was 1.02 GB on C:):



At any rate, rather than getting all spun-up over Windows (did I tell you about Xubuntu yet?), I researched how to make the C: drive bigger in my virtual machine. I quickly came up with this post: How to resize a virtual drive, which, turns out, is exactly what I intended to do. I found out that file resizing does not work if snapshots had been taken (forgot to read inside the parenthesis about prior to 4.3...), so I went into VirtualBox and created a clone with no snapshots of the current state.

Once that was complete, I continued with the guide by using the following script in terminal:

VBoxManage modifyhd <absolute path to file> --resize <size in MB>

Only I wanted to go from 30GB to 40GB, so the exact command was:

VBoxManage modifyhd "/mnt/Media/Virtual Machines/Windows 7 Clone/Windows 7 Clone.vdi" --resize 40960

And that was the first step of the process, by giving VirtualBox a bigger "hard drive" to work with. I then started up the Windows 7 Clone to extend the primary partition into the new space. After opening Disk Management, I was greeted with the unallocated space:


So here, just right click the (C:) > Extend Volume. Follow the menus to extend it out into the unallocated space, and then voila!


Like I said previously, I created a clone to work with, so I wasn't messing around with the original installation. If you are doing this on your working install, make sure you create a backup prior to attempting to resize the drive, as something could possibly get messed up. Also, since I'm running 4.3, I could have possibly done this procedure on the existing snapshot, but creating the clone meant that I could follow the original tutorial and also have a backup to work with.

If you have any comments, feel free to leave them below.

Saturday, October 17, 2015

Nexus 5 woes - Boot loop / power button sticking

Background:
I've been using the original Nexus 5 since it was first released by Google. It has been a great device and I've enjoyed a couple years' worth of use out of it. However, towards the end of August, it started a random boot loop, as if someone were holding down the power button. After a bit of Internetting, I found some people advising (on reddit) to tap it on the corner of the phone on a hard surface, near the power button. This seemed odd, but after many responses of "I can't believe this worked for me" and the like, I gave it a shot. It didn't work. I contacted Google in the hopes that they could shed some light. No luck there, but they did forward me over to LG and they were very happy to take my money for repair of the phone. So money I gave them, but a repaired phone in exchange I did not get. Here is some history, some of my troubleshooting efforts, and the logs that goes with them.

History:
August 25th: Contacted Google who then forwarded me to LG for repair
Sep 1st: LG sent a product received notification. A couple days later they asked if I wanted to repair the power button or completely refurbish the phone. I chose a complete refurbish for $179 since the battery was pushing 2 years, and my screen had a couple scratches.
Sep 14th: LG sent a product shipped notification. Their "Repair Results" in the e-mail stated "Re-Solder (Must input Part Location No.)". Not sure what that even means since when I got the phone back it seemed completely new.
Sep 25th: Received the phone, booted up, restored from Google backup, everything was running well. Received notification that a system update was available (~10 MB Android 5.1.1 update, likely LMY48M from LMY48I). Installed it, boot loop began.
Sep 29th: Contacted Google again, no help, contacted LG directly
Oct 2nd: LG received the phone again
Oct 6th: LG sent it back to me. Their "Repair Results" in the e-mail stated "S/W upgrade (download)". Seems they did a factory reset of some sort, no hardware work this time.
Oct 16th: received in the mail from FedEx
Oct 17th:
  • Booted up phone (no sim card)
  • Entered all Google account info, restored from backup
  • Phone ran fine, updated all apps from the app store once completely started up
  • Notification of new system update available, same as last time, chose to install (~10.1 MB), again probably the LMY48I to LMY48M update.
  • After install, the phone restarted, got to "optimizing apps" and powered off
  • Phone will not boot into OS. It will only go into fastboot or to the Google logo, then power off
  • Started troubleshooting sequence below

Found forum discussions with the same issue:

Troubleshooting:
1) Plugged in USB cable, battery charging icon appeared on screen
2) Went into fastboot mode with key combo of VolDwn+Pwr
3) Installed marshmallow via the instructions at (https://developers.google.com/android/nexus/images?hl=en#instructions)
  • Unlocked device, acknowledged warning
  • Ran ./flash-all.sh (see update log at the bottom of this doc)
    • This package is MRA58K
  • On reboot, showed Android with spinning blue wireframe ball
  • Restarted again; Google logo w/unlock icon at the bottom of screen
  • Phone turned off, will not turn on with power button alone. Will go into fastboot via Vol Dwn+Pwr
    • New bootloader version: HHZ12k
    • New baseband version: M8974A-2.0.50.2.27
    • Lock state: unlocked
    • (all else the same)
  • Attempt the "Start" option from fastboot
    • Does not get past the Google screen, instead, turns off
    • Unplugged USB cable and re-plugged to see if the phone indeed turned off (as confirmed by a battery charging icon) or if the screen just went dark. Nothing happened when the cable was plugged back in. Waiting 5 min to see if the phone does something
    • No response from phone, unplugged USB and turned on w/power button, go to Google screen and turned off
  • Plugged in USB, went into fastboot via key combo. Ran ./flash-all.sh again (see update log 2 at bottom)
    • During the automatic restart, Google screen showed, then turned off
    • Manually powered on again, same thing happened
  • Went into fastboot, attempted to flash LMY48B (last known stable version of 5.1.1, update log 3 at bottom)
    • New fastboot screen info: Bootloader Version...: HHZ12h; Baseband Version.....: M8974A-2.0.50.2.26
    • Phone rebooted after flashing, then turned off. Showed battery charge icon
    • Manually turned on, got to Google screen, turned off
  • Back into fastboot, attempted flashing 5.0.1 (LRX22C, update log 4 at bottom)
    • New fastboot screen info: Bootloader Version...: HHZ12d; Baseband Version.....: M8974A-2.0.50.2.22
    • Rebooted, got to Google logo, powered off, showed battery charge icon
  • Went into fastboot, locked device via fastboot oem lock.
    • Chose the Start option from fastboot, got to Google logo, turned off. This time it automatically turned back on, and then gets to the Google logo in a boot loop cycle (happened ~7 times)
    • Manually powered on, got to Google logo, stayed there for ~15 minutes. Powered off with all 3 buttons. Powered on, got to Google logo, turned off.
    • Rebooted into fastboot, attempted to go into Recovery Mode. Got to Google logo and powered off. Manually powered on, stuck in boot loop.
  • Ran fastboot oem unlock again
    • Once complete with erase and unlock, attempted to boot device. Got to Google logo, turned off
  • Back into fastboot, attempted flashing 4.4 (KRT16M, update log 5 at bottom)
    • New fastboot screen info: Bootloader Version...: HHZ11d; Baseband Version.....: M8974A-1.0.25.0.17
    • Completed install, Google logo, reboot, Google logo, power off
  • Went into Recovery Mode, showed Google Logo, then showed Android guy with spinning blue wireframe ball
    • Sat there for about 2 minutes, then powered off
    • Automatically rebooted into Android guy again. Powered off after about 45 seconds
    • Powered on, got to Google logo, went into Android guy again
      • The blue bar at the bottom of the screen doesn't appear to be showing progress of any sort, it just has black vertical lines moving across it to the left
    • After about 45 seconds, the screen froze (no more animation) then 10 seconds later it powered off
  • Attempted to go back into recovery mode again, but it went into a boot loop at the Google logo
    • Again, android guy, reboot, android guy, power off
  • Flashed 6.0.0 again
    • Logo, reboot, logo, reboot, logo, power off
    • Recovery: android guy (no blue bar this time) - vol up+pwr tap doesn't go into factory reset screen. stayed on android guy for 1 minute, rebooted, logo, rebooted, logo,
  • Within fastboot, flashed TWRP bootloader via fastboot flash recovery recovery.img
    • (openrecovery-twrp-2.8.5.2-hammerhead.img)
    • Wiped everything
    • Attempted permissions repair
    • Ran fastboot -w then fastboot continue. It restarted into TWRP, formatted cache, and then powered off.
  • FINALLY!! I booted into fastboot, and this time just chose "Start" instead of recovery, and it got past the Google logo and into the new marshmallow animation screen.... progress.
    • The animation started at 14:15. At 19:35 I manually restarted the phone.
    • Back at square one (won't get past Google logo)
  • Tried fastboot -w again, no luck
  • Reflashed 6.0 again, booted into recovery, performed "Wipe data/factory reset". Boot loop. Notice a trend??
  • Hail Mary: Installed TWRP recovery, performed a factory reset (wipe /data and /cache).
    • Performed adb push cyanogenmod.zip. Got half-way through the install, phone rebooted.
  • One more attempt: flashed the stock recovery, restarted bootloader, flashed TWRP recovery, restarted bootloader, entered recovery, wipe > advanced wipe > check everything > wipe.
    • Once complete, checked /system, and "repair system". Phone rebooted.
    • Reflashed stock recovery, reflashed TWRP
    • Won't let me into TWRP again.
    • Performed fastboot -w, got this:
      • erasing 'userdata'...
        FAILED (status read failed (Protocol error))
        finished. total time: 5.266s
      • Then phone turned off
  • I'm done. Sending this log to Google and LG, more to follow.

UPDATE (Oct 18, 2015):
I called Google to see if there was anything they could do since obviously LG doesn't properly repair their products during refurbishment. After being on the phone for close to an hour, I got the same "your device is out of warranty, let me forward you to LG" answer, which, by the way, were not open. Looks like I will be calling tomorrow to try and speak to someone who can promise me a different phone or at least a full repair with this one.

UPDATE (Nov 4, 2015):
I received the phone back from LG repair very disappointed. The sheet they included with the box said that the primary complaint was that it wasn't charging. The fix: replace the charging receptacle. Did they not listen to a word I said?? Apparently not. The good news is that the phone booted to the welcome screen, and that's where I'm leaving it. My Nexus 6P is on the way (good bye LG!), and this phone is going on the shelf.



Thursday, January 8, 2015

Resize a VirtualBox VDI Image

I recently wanted to hone my woodworking skills, not in the workshop, but in the planning phase.  My previous projects have all been either "plan as you go" or, at the very best, drawn out and dimensionalized on paper using straight-edges, etc.  As I am not a skilled craftsman, but a mere hobbyist, my projects never seemed to come out how I envisioned them in my head (read: mortise and tenon joints ended up being screwed together).  Anyways, I've known about Sketchup for a while, previously made by Google and now by Trimble, and decided to give it a whirl.  The only problem: for Windows and Mac only.  Of course.  I then set out on a path of finding an alternate, but the community support on YouTube is just phenomenal (search for Sketchup for Woodworking, and you'll see what I mean).

I installed VirtualBox, got Windows 7 up and running, and of course installed all of the updates, Comodo anti-virus, and Firefox.  Bare minimal installation.  Then I installed Sketchup and went to work.  Hours of watching and pausing YouTube, repeating the process in Sketchup, and I'm starting to get excited about the prospect of having actual, real dimensions printed out with my woodworking plans in multiple views, angles, etc.

Tenons for a mobile planer cart


The planer cart

Sander caddy with paper storage




Next up: Windows strikes again and is running out of space.

Out of space!

How is that even possible?  I dynamically allocated 25GB on my hard drive just for Windows.  It's a very minimal installation, yet here I am with a red bar below my C:\ drive, and it stating I have 941MB left of my initial 25GB.  Seriously?  I am reminded once again why I switched years ago to Linux.

  1. Shut down Windows
  2. Close VirtualBox
  3. terminal:
    1. sudo VBoxManage modifyhd "/path/to/vdi/Windows 7.vdi" --resize <size in MB>
    2. In my case: sudo VBoxManage modifyhd "/mnt/Media/VBox/Windows 7.vdi" --resize 30000
    3. Note: the quotes are only required if there is a space in the path (or use the \ modifier, whatever suits you best).
  4. Open VirtualBox, but don't start Windows just yet
  5. Right Click the Windows instance > Settings
  6. Go to Storage in the left pane and click on your VDI file
  7. Verify the Virtual Size is what you requested
  8. Close out of settings and start Windows
  9. Since Windows won't automatically add the new space to your drive, open Disk Management (Control Panel > Administrative Tools > Create and Format hard disk partitions
  10. Right click on your Windows volume > Extend Volume
    Right click on Windows Volume
  11. Next
  12. Change options as you see fit.  I left everything as-is, because I want all 5GB additional space allocated to this volume.
    Extend Volume by preferred amount or leave as-is
  13. Next > Finish
  14. Your Disk Management should now show that you have increased the size of your Windows volume
    Disk Management shows increased size
  15. Open Windows Explorer and verify your hard drive now shows your new storage space
    1. For me, it still showed the old amount because I was in the My Computer view before resizing.  If this is your case, simply click on some other place in Windows Explorer, and go back to Computer view and it should update.
And Wa La!  Back to the happy blue color.

I hope this helps out someone.  If you run into problems, review the documentation.  While researching, I ran across a post on the Ubuntu forums that if it is a fixed disk instead of dynamically allocated - meaning your original VDI file was the full size of the disk instead of gradually growing as needed over time - this process will not work.  There is, however, a VirtualBox utility out there that will supposedly copy your fixed VDI file to a dynamic one while resizing it.  I believe it is a Windows utility so I didn't pay much attention to it.

Good luck, and if there are any discrepancies please let me know in the comments.