reynhout / chrx

Chromebook Unix
419 stars 56 forks source link

go script exits with error mkfs.ext4 -q /dev/nvme0n17 #57

Closed ipstacks closed 6 years ago

ipstacks commented 6 years ago

mkfs.ext4 -q /dev/nvme0n17 << Looks like there is a 'p' missing. The device name should be /dev/nvme0n1p7 . . . The whole error is below: Model: Google Pixelbook Released: 2017 CPU Family: Intel Kaby Lake Prognosis: uncertain; no field reports

Checking hardware support for legacy boot... OK Setting up target disk /dev/nvme0n1...

Installing to /dev/nvme0n17... The file /dev/nvme0n17 does not exist and no size was specified. fatal: return code 1 from command "mkfs.ext4 -q /dev/nvme0n17" chronos@localhost ~ $ sudo fdisk -l Disk /dev/loop0: 8.5 GiB, 9082621952 bytes, 17739496 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

Disk /dev/loop1: 633.6 MiB, 664375296 bytes, 1297608 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

Disk /dev/loop2: 142.6 MiB, 149516288 bytes, 292024 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

Disk /dev/loop3: 4 KiB, 4096 bytes, 8 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

Disk /dev/loop4: 4 KiB, 4096 bytes, 8 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

Disk /dev/loop5: 4 KiB, 4096 bytes, 8 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

Disk /dev/nvme0n1: 477 GiB, 512110190592 bytes, 1000215216 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: gpt Disk identifier: F958839F-EB8C-A549-BBF9-1B5C982C6EE4

Device Start End Sectors Size Type /dev/nvme0n1p1 17092608 77434879 60342272 28.8G Microsoft basic data /dev/nvme0n1p2 20480 53247 32768 16M ChromeOS kernel /dev/nvme0n1p3 8704000 17092607 8388608 4G ChromeOS root fs /dev/nvme0n1p4 53248 86015 32768 16M ChromeOS kernel /dev/nvme0n1p5 315392 8703999 8388608 4G ChromeOS root fs /dev/nvme0n1p6 77434880 77467647 32768 16M ChromeOS kernel /dev/nvme0n1p7 77467648 1000214527 922746880 440G ChromeOS root fs /dev/nvme0n1p8 86016 118783 32768 16M Microsoft basic data /dev/nvme0n1p9 16450 16450 1 512B ChromeOS reserved /dev/nvme0n1p10 16451 16451 1 512B ChromeOS reserved /dev/nvme0n1p11 64 16447 16384 8M unknown /dev/nvme0n1p12 249856 315391 65536 32M EFI System

Partition table entries are not in disk order.

Disk /dev/dm-0: 2.3 GiB, 2411724800 bytes, 588800 sectors Units: sectors of 1 * 4096 = 4096 bytes Sector size (logical/physical): 4096 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/mapper/encstateful: 8.5 GiB, 9082621952 bytes, 17739496 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

chronos@localhost ~ $ Model: Google Pixelbook bash: Model:: command not found chronos@localhost ~ $ I/O size (minimum/optimal): 512 bytes / 512 bytes bash: syntax error near unexpected token `('

reynhout commented 6 years ago

Thanks for the output.

Chrx doesn't know how to name NVMe storage devices, but this might be enough for me to add support without having appropriate test hardware on hand.

I should have something ready to test later today. If you're able, I'd appreciate it!

ipstacks commented 6 years ago

Hi Sir. I would be more than glad to test for you. I am kind of dumb so you might have to walk me through some of it. What I did was run: cd ; curl -Os https://chrx.org/go && sh go

This produced the error I sent you. The next thing I was going to do was run: cd ; curl -Os https://chrx.org/go && sh go -d ubuntu -e desktop -r 17.10.1 -H myhostname -U myusername

Every time I boot back into ChromeOS with ctrl d, it triggers and recovery. I am guessing it's because the script can partition and format the partition in a way that doesn't cause the recovery to happen.

reynhout commented 6 years ago

OK, updated version in chrx/dev.. I tested here, but I don't have an NVMe device, so fingers crossed. :)

Instructions are a little different:

export CHRX_ROOT="https://chrx.org/dev"
cd ; curl -O $CHRX_ROOT/go && sh go -v [OTHER_OPTIONS]

Thanks for testing this!

ipstacks commented 6 years ago

I tried running the script, but it failed because it can't create the go file. It says the file system is read only. I didn't watch the recovery when I did it so I am doing another recovery to make sure everything goes ok. If I remember correctly there isn't much to do in the recovery process, just insert the flash drive and unplug it when it's done. Anyway I noticed I didn't have to put it back into dev mode after the recovery ran last time so maybe that's an issue?

I tried to press ctrl d at the recovery screen before I started the recovery and nothing happened, that might be the correct behavior if the machine is already in dev mode?!

reynhout commented 6 years ago

The "read only" error is probably due to not running the cd at the beginning of the command, which I forgot to include. Updated above, sorry about that!

You only need the cd when you log in via Ctrl+Alt+T inside ChromeOS. I always use VT2 (Ctrl+Alt+F2(top row, right arrow) then user "chronos" with no password), so I forget about it.

It's normal to stay in dev mode even after Recovery.

ipstacks commented 6 years ago

It's transitioning to dev mode now. I had to login and get to the desktop to get back to eerr non-dev mode. So I finally have it transitioning back to dev mode. ETA 6 minutes on the screen.

ipstacks commented 6 years ago

The script ran and all was green. I rebooted and now it says it's repairing itself . . . 3:45 minutes to go

reynhout commented 6 years ago

OK good, that's ChromeOS working with the new partition structure. Takes a bit of time. That's phase one of the install. Then you run chrx again with the same args, and it does the actual OS install.

ipstacks commented 6 years ago

Failed with the same error I think . . . I attached a screenshot for your review. Ok. It looks like it stripped the screenshot from the email: crosh> shell chronos@localhost / $ export CHRX_ROOT="https://chrx.org/dev" chronos@localhost / $ cd ; curl -O $CHRX_ROOT/go && sh go -v -d ubuntu -e desktop -r 17.10.1 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2000 100 2000 0 0 2000 0 0:00:01 0:00:01 --:--:-- 1040 chrx installer, version 2.4.2

Hardware ID: EVE
Model:       Google Pixelbook
Released:    2017
CPU Family:  Intel Kaby Lake
Prognosis:   uncertain; no field reports

Checking hardware support for legacy boot... OK Setting up target disk /dev/nvme0n1...

Installing to /dev/nvme0n17... mke2fs 1.43.6 (29-Aug-2017) The file /dev/nvme0n17 does not exist and no size was specified. fatal: return code 1 from command "mkfs.ext4 /dev/nvme0n17" chronos@localhost ~ $

On Mon, Feb 12, 2018 at 11:00 AM, reynhout notifications@github.com wrote:

OK good, that's ChromeOS working with the new partition structure. Takes a bit of time. That's phase one of the install. Then you run chrx again with the same args, and it does the actual OS install.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/reynhout/chrx/issues/57#issuecomment-364850416, or mute the thread https://github.com/notifications/unsubscribe-auth/AirOUoqeOAGm7NMIZd2GDYw5-wcw51lxks5tT--qgaJpZM4SBQgW .

reynhout commented 6 years ago

Hmm, that's the old version of the script. It should be 2.4.3.

...because I've failed you again. Sorry. Fixed below.

export CHRX_WEB_ROOT="https://chrx.org/dev"
cd ; curl -O $CHRX_WEB_ROOT/go && sh go [OPTIONS]
ipstacks commented 6 years ago

Here is the output Sir: crosh> shell chronos@localhost / $ export CHRX_WEB_ROOT="https://chrx.org/dev" chronos@localhost / $ cd ; curl -O $CHRX_WEB_ROOT/go && sh go -v -d ubuntu -e desktop -r 17.10.1 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2000 100 2000 0 0 2000 0 0:00:01 0:00:01 --:--:-- 2439 chrx installer, version 2.4.3

Hardware ID: EVE
Model:       Google Pixelbook
Released:    2017
CPU Family:  Intel Kaby Lake
Prognosis:   uncertain; no field reports

Checking hardware support for legacy boot... OK Setting up target disk /dev/nvme0n1...

unrecognized disk device!

Installing to ... Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. Usage: mkfs.ext4 [-c|-l filename] [-b block-size] [-C cluster-size] [-i bytes-per-inode] [-I inode-size] [-J journal-options] [-G flex-group-size] [-N number-of-inodes] [-d root-directory] [-m reserved-blocks-percentage] [-o creator-os] [-g blocks-per-group] [-L volume-label] [-M last-mounted-directory] [-O feature[,...]] [-r fs-revision] [-E extended-option[,...]] [-t fs-type] [-T usage-type ] [-U UUID] [-e errors_behavior][-z undo_file] [-jnqvDFSV] device [blocks-count] fatal: return code 1 from command "mkfs.ext4" chronos@localhost ~ $

reynhout commented 6 years ago

Hmm. OK, minor update with some better debugging. Try again?

ipstacks commented 6 years ago

crosh> shell chronos@localhost / $ export CHRX_WEB_ROOT="https://chrx.org/dev" chronos@localhost / $ cd ; curl -O $CHRX_WEB_ROOT/go && sh go -v -d ubuntu -e desktop -r 17.10.1 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2000 100 2000 0 0 2000 0 0:00:01 --:--:-- 0:00:01 2283 chrx installer, version 2.4.3

Hardware ID: EVE
Model:       Google Pixelbook
Released:    2017
CPU Family:  Intel Kaby Lake
Prognosis:   uncertain; no field reports

Checking hardware support for legacy boot... OK Setting up target disk /dev/nvme0n1 partitions...

Installing to /dev/nvme0n1p1... Install target /dev/nvme0n1p1 is already mounted!

Unmount manually (sudo umount -R /tmp/chrxroot) or reboot to try again. chronos@localhost ~ $

reynhout commented 6 years ago

OK, those instructions at the end should be valid. sudo umount -R /tmp/chrxroot or reboot.

ipstacks commented 6 years ago

Sorry. I will re-read and go again. I was out and wasn't paying attention.

ipstacks commented 6 years ago

This is what I've been doing and I think it might be what you are asking. First I run: ctrl + alt + t shell export CHRX_WEB_ROOT="https://chrx.org/dev" cd ; curl -O $CHRX_WEB_ROOT/go && sh go

Then I reboot and run: ctrl + alt + t shell export CHRX_WEB_ROOT="https://chrx.org/dev" cd ; curl -O $CHRX_WEB_ROOT/go && sh go -v -d ubuntu -e desktop -r 17.10.1 -H xxx -U xxx

Since I have done that, I will reboot again and try the script again?

ipstacks commented 6 years ago

crosh> shell chronos@localhost / $ export CHRX_WEB_ROOT="https://chrx.org/dev" chronos@localhost / $ cd ; curl -O $CHRX_WEB_ROOT/go && sh go -v -d ubuntu -e desktop -r 17.10.1 -H xxx -U xxx % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2000 100 2000 0 0 2000 0 0:00:01 0:00:01 --:--:-- 2265 chrx installer, version 2.4.3

Hardware ID: EVE_
Model:       Google Pixelbook
Released:    2017
CPU Family:  Intel Kaby Lake
Prognosis:   uncertain; no field reports

Checking hardware support for legacy boot... OK Setting up target disk /dev/nvme0n1 partitions...

Installing to /dev/nvme0n1p1... Install target /dev/nvme0n1p1 is already mounted!

Unmount manually (sudo umount -R /tmp/chrxroot) or reboot to try again. chronos@localhost ~ $ sudo umount -R /tmp/chrxroot umount: /tmp/chrxroot: not found chronos@localhost ~ $

reynhout commented 6 years ago

This is after a reboot right?

Can you post the output of lsblk when freshly booted into ChromeOS?

ipstacks commented 6 years ago

crosh> shell chronos@localhost / $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 8.5G 0 loop └─encstateful 253:1 0 8.5G 0 dm /mnt/stateful_partition/encrypted loop1 7:1 0 633.6M 1 loop /run/containers/android_YYwp7o/root loop2 7:2 0 142.6M 1 loop /run/containers/android_YYwp7o/root/vend loop3 7:3 0 4K 1 loop /opt/google/containers/arc-removable-med loop4 7:4 0 4K 1 loop /opt/google/containers/arc-sdcard/mountp loop5 7:5 0 4K 1 loop /opt/google/containers/arc-obb-mounter/m zram0 252:0 0 22.8G 0 disk [SWAP] nvme0n1 259:0 0 477G 0 disk ├─nvme0n1p1 259:1 0 28.8G 0 part /mnt/stateful_partition ├─nvme0n1p2 259:2 0 16M 0 part ├─nvme0n1p3 259:3 0 4G 0 part ├─nvme0n1p4 259:4 16M 0 part ├─nvme0n1p5 259:5 4G 0 part ├─nvme0n1p6 259:6 16M 0 part ├─nvme0n1p7 259:7 440G 0 part ├─nvme0n1p8 259:8 16M 0 part /usr/share/oem ├─nvme0n1p9 259:9 512B 0 part ├─nvme0n1p10 259:10 512B 0 part ├─nvme0n1p11 259:11 8M 0 part └─nvme0n1p12 259:12 32M 0 part chronos@localhost / $

ipstacks commented 6 years ago

The first time I run the script it isn't trying to partition anymore because it's already done. Should I recover and try it from a recovery?

reynhout commented 6 years ago

Oops, another mistake here. Sorry, recovering from a cold...not as quickly as I thought.

I think I've fixed it now. You should not need to do a Recovery first.

reynhout commented 6 years ago

btw, -e desktop -r 17.10.1 in the options is not necessary. "desktop" and "latest" are the defaults. "17.10.1" might confuse the version parser (it knows "17.10"), so if you have any issues after the dumb ones currently under discussion, you can try dropping those parameters.

ipstacks commented 6 years ago

chronos@localhost ~ $ cd ; curl -O $CHRX_WEB_ROOT/go && sh go -v -d ubuntu -e desktop -r 17.10.1 -H xxx -U xxx % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2000 100 2000 0 0 2000 0 0:00:01 --:--:-- 0:00:01 2478 chrx installer, version 2.4.3

Hardware ID: EVE_
Model:       Google Pixelbook
Released:    2017
CPU Family:  Intel Kaby Lake
Prognosis:   uncertain; no field reports

Checking hardware support for legacy boot... OK Setting up target disk /dev/nvme0n1 partitions...

Installing to /dev/nvme0n1p7... mke2fs 1.43.6 (29-Aug-2017) Discarding device blocks: done
Creating filesystem with 115343360 4k blocks and 28835840 inodes Filesystem UUID: 3470da86-020b-4743-92ab-44fe1430b985 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done Writing superblocks and filesystem accounting information: done

Preparing installation root directory /tmp/chrxroot

Installing
  operating system:   linux 
  distribution (-d):  ubuntu 
  environment (-e):   desktop 
  release (-r):       17.10.1 
    version:          17.10.1 (CAUTION: untested!)
  architecture (-a):  amd64 
  mirror (-m):        primary unknown, will use primary
  target_disk (-t):   /dev/nvme0n1
  packages (-p):      

System Configuration
  hostname (-H):      xxx
  username (-U):      xxx
  locale (-L):        en_US.UTF-8
  timezone (-Z):      America/New_York

Press [enter] to confirm and continue:

Fetching Ubuntu core image file... HTTP GET http://cdimage.ubuntu.com/ubuntu-base/releases/17.10.1/release/ubuntu-base-17.10.1-base-amd64.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 356 100 356 0 0 356 0 0:00:01 --:--:-- 0:00:01 2225

gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now fatal: unable to download and extract core image file. chronos@localhost ~ $

ipstacks commented 6 years ago

I think you were right in your last comment. I dropped those 2 parameters and it looks like it is working now . . . It's 15 meg into the download anyway!!!

reynhout commented 6 years ago

OK, excellent. Fingers crossed on the rest. :)

ipstacks commented 6 years ago

Creating user "xxx".

Adding user "xxx" to groups "adm sudo cdrom dip plugdev lpadmin". << exiting chroot

chrx installer is finished!

 started: Mon Feb 12 19:50:35 +03 2018
finished: Mon Feb 12 20:08:46 +03 2018
 elapsed: 18m11s

Installation log files will be preserved in /var/cache/chrx

After reboot, at the white "OS verification is OFF" screen, press:

CTRL-D to boot ChromeOS, or
CTRL-L to boot Ubuntu.

Your login is:

username: xxx
password: xxx

Be sure to change your password after log in!

Press [enter] when ready to reboot:

ipstacks commented 6 years ago

Thanks so much for getting your script to work on the Pixelbook with the nvme ssd!! I booted into Ubuntu and there isn't any sound but I will start working on that issue. I noticed at the beginning of the script there are some customization files. Do you have any documentation on them?

reynhout commented 6 years ago

Awesome. Thank you for your help and patience!

Sound will likely be an issue on all distros right now, including GalliumOS (which usually has the best support). Hopefully suspend works..

No real documentation on the customization files, unfortunately. They fix little peripheral things (some of which might be inappropriate or just not necessary on EVE).

ipstacks commented 6 years ago

I just tested suspend by closing the lid. Now when I open it the screen is blank and when I touch a key they flash (back light), support is work in progress for sure. I'll try to get back to Linux and update things before I try suspend again!!

ipstacks commented 6 years ago

Thanks so much for the help!! I was able to format and reinstall Linux now that the partition is there and Chrome OS isn't complaining about it.

reynhout commented 6 years ago

Excellent, glad to hear it!

Thanks again for your help.