USB remount automatically until the system freezes

external 1 TB USB HDD with five partitions gets remounted automatically until the system freezes. fstab looks like this:

/dev/disk/by-id/ata-ST3120827AS_4MS1EDWG-part5 swap                 swap       defaults              0 0
/dev/disk/by-id/ata-ST3120827AS_4MS1EDWG-part3 /                    ext3       acl,user_xattr        1 1
/dev/disk/by-label/linda1            /mnt/linda1          ext3      rw,user,noauto,nofail     0 0
/dev/disk/by-label/linda3            /mnt/linda3          ext3      rw,user,noauto,nofail     0 0
/dev/disk/by-label/linda4            /mnt/linda4          ext3      rw,user,noauto,nofail     0 0
/dev/disk/by-label/linda5            /mnt/linda5          ext3      rw,user,noauto,nofail     0 0
/dev/disk/by-label/linda6            /mnt/linda6          ext3      rw,user,noauto,nofail     0 0
/dev/disk/by-label/baaah1            /mnt/baaah1          ext3      rw,user,noauto,nofail   0 0
/dev/disk/by-label/baaah2            /mnt/baaah2          ext3      rw,user,noauto,nofail   0 0
#/dev/cdrom                          /mnt/cdrom           auto      ro,noauto,user,exec   0 0

proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0

below you can see that partitions get remounted as /sdb /sdc /sdd in the course of a few hours.

25.09.2011 04:19:05	vipassana	kernel	[48595.232308] kjournald starting.  Commit interval 15 seconds
25.09.2011 04:19:05	vipassana	kernel	[48595.280137] EXT3-fs (sdd1): using internal journal
25.09.2011 04:19:05	vipassana	kernel	[48595.280149] EXT3-fs (sdd1): recovery complete
25.09.2011 04:19:05	vipassana	kernel	[48595.332063] EXT3-fs (sdd1): mounted filesystem with ordered data mode
25.09.2011 04:19:22	vipassana	kernel	[48612.017287] kjournald starting.  Commit interval 15 seconds
25.09.2011 04:19:22	vipassana	kernel	[48612.040794] EXT3-fs (sdd5): using internal journal
25.09.2011 04:19:22	vipassana	kernel	[48612.040803] EXT3-fs (sdd5): recovery complete
25.09.2011 04:19:22	vipassana	kernel	[48612.063427] EXT3-fs (sdd5): mounted filesystem with ordered data mode
25.09.2011 04:30:01	vipassana	/USR/SBIN/CRON[12267]	(polipo) CMD (  /usr/sbin/polipo-trimcache.sh)
25.09.2011 04:49:30	vipassana	kernel	[50420.635677] EXT3-fs error (device sdc5): ext3_get_inode_loc: unable to read inode block - inode=24353167, block=97222659
25.09.2011 04:49:30	vipassana	kernel	[50420.635806] EXT3-fs (sdc5): I/O error while writing superblock
25.09.2011 04:49:30	vipassana	kernel	[50420.635812] EXT3-fs (sdc5): error in ext3_reserve_inode_write: IO failure
25.09.2011 04:49:30	vipassana	kernel	[50420.635901] EXT3-fs (sdc5): I/O error while writing superblock
25.09.2011 04:49:30	vipassana	kernel	[50420.635970] EXT3-fs error (device sdc5): ext3_get_inode_loc: unable to read inode block - inode=24353167, block=97222659
25.09.2011 04:49:30	vipassana	kernel	[50420.636148] EXT3-fs (sdc5): I/O error while writing superblock
25.09.2011 04:49:30	vipassana	kernel	[50420.636155] EXT3-fs (sdc5): error in ext3_reserve_inode_write: IO failure
25.09.2011 04:49:30	vipassana	kernel	[50420.636308] EXT3-fs (sdc5): I/O error while writing superblock

mount shows the devices mounted over the same mount point

/dev/sdb1/linda1 /mnt/linda1
/dev/sdc1/linda1 /mnt/linda1
/dev/sdd1/linda1 /mnt/linda1
this goes on to
/dev/sdu1/linda1 or some other grotesque letter

the fs is clean, i uninstalled hal and libmtp-hal. suggestions on how to truly turn off automount in suse 11.4 with KDE 4.7.1 would be muchly appreciated. :slight_smile: BTW: device notifier - though it gives the option of unchecking automount - is useless, stopping hal in system services doesn t make a diff either.

mount shows the devices mounted over the same mount point

/dev/sdb1/linda1 /mnt/linda1
/dev/sdc1/linda1 /mnt/linda1
/dev/sdd1/linda1 /mnt/linda1
this goes on to
/dev/sdu1/linda1 or some other grotesque letter

the fs is clean, i uninstalled hal and libmtp-hal. suggestions on how to truly turn off automount in suse 11.4 with KDE 4.7.1 would be muchly appreciated. :slight_smile: BTW: device notifier - though it gives the option of unchecking automount - is useless, stopping hal in system services doesn t make a diff either.

So I see several oddities and have a few questions. Why have the disk label the same as the folder name you are mounting it to though you are using the fstab noauto option? Normally, an automount would use the disk label as the folder name yet you have already created that folder. Why use the the noauto at all as the default in the fstab file is auto and makes more sense when added to your fstab file? You would be better off removing all entries from the fstab file and remove the folder names from the /mnt folder, then just plug it in and see what you get. Else, remove the noauto requests and consider using a slightly different folder name than exactly matching the disk label. Why use the disk labels to identify the partitions when the default is /dev/disk/by-id/? It is my believe that one or more of these non-standard actions you have taken with your fstab file and folder naming is the cause of your problems. Remove them all from the fstab and reboot with the USB drive still connected. Then, run YaST / System / Partitioner and elect to mount each partition (without formatting it) to any folder name not used for auto-mounting and the correct entries will be made for you that will not cause such nonsense to occur.

Thank You,

thnx for your ideas. just to make sure we don t have a missunderstanding due to lack of clarity of my previous post :shame:, here s the return of mount:

devtmpfs on /dev type devtmpfs (rw,relatime,size=504020k,nr_inodes=126005,mode=755)                                   
tmpfs on /dev/shm type tmpfs (rw,relatime)
/dev/sda3 on / type ext3 (rw,relatime,errors=continue,user_xattr,acl,commit=15,barrier=1,data=ordered)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=000)
/dev/sdb1 on /mnt/linda1 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,commit=15,barrier=1,data=ordered,_netdev)
/dev/sdb6 on /mnt/linda6 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,commit=15,barrier=1,data=ordered,_netdev)
/dev/sdb3 on /mnt/linda3 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,commit=15,barrier=1,data=ordered,_netdev)
/dev/sdb4 on /mnt/linda4 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,commit=15,barrier=1,data=ordered,_netdev)
securityfs on /sys/kernel/security type securityfs (rw,relatime)
proc on /var/lib/ntp/proc type proc (ro,nosuid,nodev,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
gvfs-fuse-daemon on /home/bv/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,relatime,user_id=1000,group_id=100)
/dev/sdb5 on /mnt/linda5 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)

that s alright as far as i can tell. what happens is that over time the entries

/dev/sdb1 on /mnt/linda1 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,commit=15,barrier=1,data=ordered,_netdev)
/dev/sdb6 on /mnt/linda6 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,commit=15,barrier=1,data=ordered,_netdev)
/dev/sdb3 on /mnt/linda3 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,commit=15,barrier=1,data=ordered,_netdev)
/dev/sdb4 on /mnt/linda4 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,commit=15,barrier=1,data=ordered,_netdev)

get replicated as sdbc1, sdd1 etc

the noauto was just one of my attempts to stop this behaviour, but to no avail. it does not seem to affect this issue. deinstalling libmtp-hal seems to have helped significantly, but i can t yet tell whether it fixes this. IMHO the auto or noauto in fstab doesn t make a diff.

To me it seems that the system looses connection with the device. Some time later (maybe only secs) it is seen again and gets a new device name attached (by udevd) because the old one still is in use. Also it seems that the file systems are unmounted in the meantime, such that mounting now from the “new” device, that has the same label, results in mounting them again at /mnt/linda1, etc (this would have been changed into /mnt/linda1-1, etc when the automatic mount system would still have the old mount in it’s administration).

You could check in dmesg if the device is detected anew every time you experience this. And then try to find out if the USB connection is lousy (maybe it has to much power consumption).

On 2011-09-25 04:06, honda185 wrote:
>
> external 1 TB USB HDD with five partitions gets remounted automatically
> until the system freezes. fstab looks like this:
>
>
> Code:
> --------------------

> /dev/disk/by-label/linda1 /mnt/linda1 ext3 rw,user,noauto,nofail 0 0
> /dev/disk/by-label/linda3 /mnt/linda3 ext3 rw,user,noauto,nofail 0 0
> /dev/disk/by-label/linda4 /mnt/linda4 ext3 rw,user,noauto,nofail 0 0
> /dev/disk/by-label/linda5 /mnt/linda5 ext3 rw,user,noauto,nofail 0 0
> /dev/disk/by-label/linda6 /mnt/linda6 ext3 rw,user,noauto,nofail 0 0
> /dev/disk/by-label/baaah1 /mnt/baaah1 ext3 rw,user,noauto,nofail 0 0
> /dev/disk/by-label/baaah2 /mnt/baaah2 ext3 rw,user,noauto,nofail 0 0
> --------------------

This should suffice to avoid automounting. If you have those entries and
KDE stills tries to mount them, it is a bug, so → bugzilla.

In gnome it doesn’t happen. I took care to report those problems for gnome
over the years and they have been solved.

> below you can see that partitions get remounted as /sdb /sdc /sdd in
> the course of a few hours.
>
>
>
> Code:
> --------------------
> 25.09.2011 04:49:30 vipassana kernel [50420.635677] EXT3-fs error (device sdc5): ext3_get_inode_loc: unable to read inode block - inode=24353167, block=97222659
> 25.09.2011 04:49:30 vipassana kernel [50420.635806] EXT3-fs (sdc5): I/O error while writing superblock
> 25.09.2011 04:49:30 vipassana kernel [50420.635812] EXT3-fs (sdc5): error in ext3_reserve_inode_write: IO failure
> 25.09.2011 04:49:30 vipassana kernel [50420.635901] EXT3-fs (sdc5): I/O error while writing superblock
>
> --------------------

Unfortunately, you have errors on your disk. Try the manufacturer test utility.


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)

thank you! i may have to switch to gnome then :slight_smile: FWIW below the return from the mount command after about 6 hours uptime.
(after renaming the disk labels)

/dev/sdc6 on /mnt/linda6 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdc4 on /mnt/linda4 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdc3 on /mnt/linda3 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdc1 on /mnt/linda1 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdc5 on /mnt/linda5 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdd5 on /mnt/linda5 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdd6 on /mnt/linda6 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdd4 on /mnt/linda4 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdd1 on /mnt/linda1 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdd3 on /mnt/linda3 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sde4 on /mnt/linda4 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sde3 on /mnt/linda3 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sde5 on /mnt/linda5 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sde6 on /mnt/linda6 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sde1 on /mnt/linda1 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdf4 on /mnt/linda4 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdf6 on /mnt/linda6 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdf3 on /mnt/linda3 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdf1 on /mnt/linda1 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdf5 on /mnt/linda5 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdg5 on /mnt/linda5 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdg4 on /mnt/linda4 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdg3 on /mnt/linda3 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdg1 on /mnt/linda1 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)
/dev/sdg6 on /mnt/linda6 type ext3 (rw,nosuid,nodev,noexec,relatime,errors=continue,barrier=1,data=ordered,_netdev)

Very strange indeed. And there is nothing in dmesg about redetecting the device?

okay, switched to gnome and - so far - the story continues. here s the dmesg output. sth is going on, but what causes it? can you read sth from this (my highlights)?

 4846.035029] **usb 1-7: USB disconnect, address 4**
 4857.974048] usb 1-7: **new high speed USB device using ehci_hcd and address 5**
 4858.088978] usb 1-7: New USB device found, idVendor=0bc2, idProduct=3300
 4858.088985] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
 4858.088989] usb 1-7: Product: Desktop         
 4858.088992] usb 1-7: Manufacturer: Seagate 
 4858.088994] usb 1-7: SerialNumber: 2GHMB43F    
 4858.090209] scsi5 : usb-storage 1-7:1.0
 4859.090706] scsi 5:0:0:0: Direct-Access     Seagate  Desktop          0130 PQ: 0 ANSI: 4
 4859.091245] sd 5:0:0:0: Attached scsi generic sg2 type 0
 4859.092805] sd 5:0:0:0: [sdc] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
 4859.094472] sd 5:0:0:0: [sdc] Write Protect is off
 4859.094480] sd 5:0:0:0: [sdc] Mode Sense: 2f 08 00 00
 4859.094486] sd 5:0:0:0: [sdc] Assuming drive cache: write through
 4859.096197] sd 5:0:0:0: [sdc] Assuming drive cache: write through
 4859.150285]  sdc: sdc1 sdc2 < sdc5 sdc6 > sdc3 sdc4
 4859.152292] sd 5:0:0:0: [sdc] Assuming drive cache: write through
 4859.152303] sd 5:0:0:0: [sdc] Attached SCSI disk
 4860.251313] kjournald starting.  Commit interval 15 seconds
 4860.344561] EXT3-fs (sdc3): using internal journal
 4860.344574] EXT3-fs (sdc3): recovery complete
 4860.345937] EXT3-fs (sdc3): mounted filesystem with ordered data mode
 4860.602221] kjournald starting.  Commit interval 15 seconds
 4860.671483] EXT3-fs (sdc1): using internal journal
 4860.671495] EXT3-fs (sdc1): recovery complete
 4860.673512] EXT3-fs (sdc1): mounted filesystem with ordered data mode
 4860.680217] kjournald starting.  Commit interval 15 seconds
 4860.833698] **EXT3-fs (sdc4): warning: maximal mount count reached, running e2fsck is recommended**
 4860.833760] kjournald starting.  Commit interval 15 seconds
 4860.834349] EXT3-fs (sdc5): using internal journal
 4860.834358] EXT3-fs (sdc5): recovery complete
 4860.835227] EXT3-fs (sdc4): using internal journal
 4860.835235] EXT3-fs (sdc4): recovery complete
 4860.835705] EXT3-fs (sdc5): mounted filesystem with ordered data mode
 4860.837117] EXT3-fs (sdc4): mounted filesystem with ordered data mode
 4861.017672] kjournald starting.  Commit interval 15 seconds
 4861.018698] EXT3-fs (sdc6): using internal journal
 4861.018706] EXT3-fs (sdc6): recovery complete
 4861.018713] EXT3-fs (sdc6): mounted filesystem with ordered data mode
 6596.672536] **usb 1-7: USB disconnect, address 5**
 6608.615047] **usb 1-7: new high speed USB device using ehci_hcd and address 6**
 6608.729963] usb 1-7: New USB device found, idVendor=0bc2, idProduct=3300
 6608.729971] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
 6608.729976] usb 1-7: Product: Desktop         
 6608.729981] usb 1-7: Manufacturer: Seagate 
 6608.729985] usb 1-7: SerialNumber: 2GHMB43F    
 6608.731046] scsi6 : usb-storage 1-7:1.0
 6609.738704] scsi 6:0:0:0: Direct-Access     Seagate  Desktop          0130 PQ: 0 ANSI: 4
 6609.739299] sd 6:0:0:0: Attached scsi generic sg2 type 0
 6609.740796] sd 6:0:0:0: [sdd] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
 6609.742651] sd 6:0:0:0: [sdd] Write Protect is off
 6609.742660] sd 6:0:0:0: [sdd] Mode Sense: 2f 08 00 00
 6609.742667] sd 6:0:0:0: [sdd] Assuming drive cache: write through
 6609.744939] sd 6:0:0:0: [sdd] Assuming drive cache: write through
 6609.801403]  sdd: sdd1 sdd2 < sdd5 sdd6 > sdd3 sdd4
 6609.803445] sd 6:0:0:0: [sdd] Assuming drive cache: write through
 6609.803454] sd 6:0:0:0: [sdd] Attached SCSI disk
 6610.390831] EXT3-fs (sdd4): warning: maximal mount count reached, running e2fsck is recommended
 6610.390899] kjournald starting.  Commit interval 15 seconds
 6610.391579] EXT3-fs (sdd4): using internal journal
 6610.391586] EXT3-fs (sdd4): recovery complete
 6610.391594] EXT3-fs (sdd4): mounted filesystem with ordered data mode
 6610.831686] kjournald starting.  Commit interval 15 seconds
 6610.898986] kjournald starting.  Commit interval 15 seconds
 6610.899804] EXT3-fs (sdd5): using internal journal
 6610.899812] EXT3-fs (sdd5): recovery complete
 6610.899820] EXT3-fs (sdd5): mounted filesystem with ordered data mode
 6610.987946] kjournald starting.  Commit interval 15 seconds
 6611.042844] kjournald starting.  Commit interval 15 seconds
 6611.043594] EXT3-fs (sdd1): using internal journal
 6611.043603] EXT3-fs (sdd1): recovery complete
 6611.043611] EXT3-fs (sdd1): mounted filesystem with ordered data mode
 6611.045837] EXT3-fs (sdd6): using internal journal
 6611.045846] EXT3-fs (sdd6): recovery complete
 6611.045854] EXT3-fs (sdd6): mounted filesystem with ordered data mode
 6611.047092] EXT3-fs (sdd3): using internal journal
 6611.047101] EXT3-fs (sdd3): recovery complete
 6611.047108] EXT3-fs (sdd3): mounted filesystem with ordered data mode

BTW: e2fsck says the fs is clean. there are 5 partitions (1,3,4,5,6) and here s 6:

e2fsck 1.41.14 (22-Dec-2010)
carlisle6: sauber, 5036/26214400 Dateien, 76426184/104854016 Blöcke

so what happens is that something mounts these drives. suppose i unmount them manually, they appear as mounted after 15 seconds; just as it says:

kjournald starting.  Commit interval 15 seconds

As I suggested earlier, it seems to disconnect spontaniously. That is where you should concentrate on. Not on changing desktops.

That the mount count is reached is no suprise. When it is mounted up to 20 times a day, the mount count is reached 20 times as soon as it is mounted only 1 time a day… Thus the check that is suposed to be done about once a month is now adviced to be done once a day (or more).

And the journaling is about the journaling of the file system when in use, nothing to do with mounting.

ok, makes perfect sense now, thanks for explaining it to me.

shouldn t the 5 partitions have to wait until i mount them OR until fstab is read when the system is started?

i ve unmounted them just now, contact sprayed everything to do with the external usb drive, made sure all connections are tight. how come it automounts as soon as i plug it in?

which settings would i need for the drive to not be automounted all the time ie if it fails, no action is taken?

On 2011-09-26 16:16, honda185 wrote:
> which settings would i need for the drive to not be automounted all the
> time ie if it fails, no action is taken?

If a partition is listed in fstab, the desktop should respect whatever
settings are there - and if one of the settings is “noauto”, it should not
mount it.

This is not happening, so report the bug in bugzilla.


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)

friends, after going round in circles for a while i found the solution. the problem lay with the case of the external drive. the printed circuit board does not provide enough juice to keep the disc spinning well:

Amazon.com: Seagate USB 2.0 External Hard Drive 1 TB USB 2.0 External Hard Drive ST310005EXA101-RK - Black: Electronics

Without going into technical details, the issue here is not the drive. It is the PCB (Printed Circuit Board) that is installed in these external enclosures. This board regulates & provide power to the drive and in simple terms, there is not enough power for the disk to spin and for the head arm to extend far to reach inner sectors of the platter / platters

If you can find a PCB that matches the Seagate Expansion box power & USB port openings, replace the PCB.
In my case, I replaced the case with a new enclosure.

so the drive itself is not to blame. funny that seagate sells a product like that. i ve seen heaps of them in stores the other week. >:(

anyway: i bought a new caddy with power supply and all has been sweet since, ie for two weeks. :wink: