You are not logged in.
Pages: 1
Hi all -
I seem to be suffering the dreaded battery discharge issue - went on holiday for a week and forgot it was sleeping rather than powered off.
I have a lot of data on there I need to retrieve!
I've tried to follow the instructions here - http://dev.chromium.org/chromium-os/dev … n-dev-mode
I have the .bin file and have written it to USB stick. It's when I get to the part about clearing flag bits that I hit a problem.
My partition table looks like so:
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit B
(parted) print
Error: The backup GPT table is corrupt, but the primary appears OK, so that will be used.
OK/Cancel? OK
Warning: Not all of the space available to /dev/sdb appears to be used, you can fix the GPT to use all of the space (an extra 12628032 blocks) or continue with the current setting?
Fix/Ignore? I
Model: USB DISK 2.0 (scsi)
Disk /dev/sdb: 8011120640B
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
11 32768B 8421375B 8388608B RWFW
6 8421376B 8421887B 512B KERN-C
7 8421888B 8422399B 512B ROOT-C
9 8422400B 8422911B 512B reserved
10 8422912B 8423423B 512B reserved
2 10485760B 27262975B 16777216B KERN-A
4 27262976B 44040191B 16777216B KERN-B
8 44040192B 60817407B 16777216B ext4 OEM msftdata
12 127926272B 144703487B 16777216B fat16 EFI-SYSTEM boot, esp
5 144703488B 146800639B 2097152B ROOT-B
3 146800640B 1499463679B 1352663040B ext2 ROOT-A
1 1499463680B 1528823807B 29360128B STATE msftdataSo I'm calling the enable_rw_mount script like so:
[root@me stuff]# ./enable_rw_mount.sh /dev/sdb 146800640
enable_rw_mount called on non-ext2 filesystem: /dev/sdb 146800640But when I try to mount the partition I get an error message:
[root@me stuff]# mount /dev/sdb3 /mnt/
mount: wrong fs type, bad option, bad superblock on /dev/sdb3,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.dmesg tells me:
[60100.978475] Alternate GPT is invalid, using primary GPT.
[60100.978494] sdb: sdb1 sdb2 sdb3 sdb4 sdb5 sdb6 sdb7 sdb8 sdb9 sdb10 sdb11 sdb12
[60248.377058] EXT4-fs (sdb3): couldn't mount RDWR because of unsupported optional features (ff000000)
[60260.548575] EXT4-fs (sdb3): couldn't mount RDWR because of unsupported optional features (ff000000)I guess the enable_rw_mount script is not working somehow, but I don't know how to diagnose or where to look for more info.
Will be very grateful for any tips or suggestions please!
Thanks all --
Offline
It seems to me that the script exits when checking if the partition's type is ext2. It means that the modification is left undone. How did you make your recovery media? You could try making it again using Google's instructions (https://support.google.com/chromebook/a … 2417?hl=en).
Offline
thanks rikn00
I made the recovery media using those instructions under the linux section. It's just a bash script which selects the appropriate image and writes it to USB.
I think you're right about why the script exits, but what confuses me is that the parted result shows that it *is* recognised as an ext2 partition (no. 3), so I'm not sure why it's failing that part of the check. In the script the code is:
#!/bin/bash
is_ext2() {
local rootfs="$1"
local offset="${2-0}"
# Make sure we're checking an ext2 image
local sb_magic_offset=$((0x438))
local sb_value=$(sudo dd if="$rootfs" skip=$((offset + sb_magic_offset)) \
count=2 bs=1 2>/dev/null)
local expected_sb_value=$(printf '\123\357')
if [ "$sb_value" = "$expected_sb_value" ]; then
return 0
fi
return 1
}
enable_rw_mount() {
local rootfs="$1"
local offset="${2-0}"
# Make sure we're checking an ext2 image
if ! is_ext2 "$rootfs" $offset; then
echo "enable_rw_mount called on non-ext2 filesystem: $rootfs $offset" 1>&2
return 1
fi
local ro_compat_offset=$((0x464 + 3)) # Set 'highest' byte
# Dash can't do echo -ne, but it can do printf "\NNN"
# We could use /dev/zero here, but this matches what would be
# needed for disable_rw_mount (printf '\377').
printf '\000' |
sudo dd of="$rootfs" seek=$((offset + ro_compat_offset)) \
conv=notrunc count=1 bs=1 2>/dev/null
}
[ -n "$2" ] || exit 1
enable_rw_mount $1 $2I tried to invoke that dd command at the end manually myself but it didn't seem to work either.
I'm just not sure where to go next with this !
Offline
You could manually run that script line by line to debug it. Did dd give any error message?
Last edited by rikn00 (2015-07-10 16:16:31)
Offline
Unfortunately, this problem with dead battery => disables non-chrome OS's is a ROM problem in the c720 and is fixed in all new chromebooks.
This procedure didn't work for you ???
Boot ChromeOS.
Go into crosh (CTRL-ALT-T)
Type "shell" to get a shell.
type sudo crossystem dev_boot_legacy=1
reboot and you should be able to select arch linux (CTRL-D)
If you cannot boot ChromeOS (i.e. its gone), get the crossystem binary on a bootable USB stick.
Last edited by systemBuilder (2015-07-14 07:48:17)
Offline
Pages: 1