Talk:Installing Arch Linux on a USB key
Before creating the initial RAM disk (mkinitcpio)
The correct custom configuration of the initial RAM disk is a step that very few users of arch need to do so is a thing that needs to be highlighted for this use case. Also the placement of this information in Installation tweaks makes it appear that is optional so i think that it will be better if the information is moved to configuration.
I am experiencing serius I/O errors after suspending / resuming with arch on a usb key. These issues have been described in several bugreports: https://bugzilla.kernel.org/show_bug.cgi?id=30912
I tried following the steps in https://www.kernel.org/doc/Documentation/usb/persist.txt
but to no avail. The usb persist feature was already activated on my USB deve but I/O errors kept coming on resume
I also found this post in ubuntuforums
which explains the issue as follows
"...during resume there will be a race between the USB system on one hand trying to detect media and syslog on the other hand trying to write log messages from suspend and resume to disk.
If syslog happens to attempt a write before the USB device has been detected ext4 gets an error, which for some reason isn't handled cleanly and eventually the file system will need fsck to be run manually."
The author suggest patching the kernel to give kernel threads a head start on resume. Intuitively, I feel there must be an easier way!
Not suitable USB sticks
Samsung Slim Fit
Better not run Arch Linux from Samsung FIT flash drives. In my case this Samsung flash drive starts having I/O read errors 6 months after the installation of a command-line only Arch on BTRFS. This setup was used for BASH script development (low I/O activity) during 1 month.
The I/O errors are like:
... scsi 0:0:0:0: Direct-Access Samsung Flash Drive FIT 1100 PQ: 0 ANSI: 6 sd 0:0:0:0: [sda] 62652416 512-byte logical blocks: (32.1 GB/29.9 GiB) ... usb 2-1: Disable of device-initiated U1 failed. usb 2-1: Disable of device-initiated U2 failed. usb 2-1: USB disconnect, device number 2. sd 0:0:0:0: [sda] Synchronizing SCSI cache sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK sd 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 00 00 02 00 00 02 00 00 print_req_error: I/O error, dev sda, sector: 512 sd 0:0:0:0: [sda] Synchronize Cache(10) failed: Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK Buffer I/O error on dev sda, logical block 64, async page read ...
After ddrescue to backup, destructive badblocks and a ddrescue to restore, all I/O errors are gone.