Sponsored Content
Full Discussion: Access a File as a Device?
Top Forums UNIX for Advanced & Expert Users Access a File as a Device? Post 302621091 by mij on Monday 9th of April 2012 08:16:54 PM
Old 04-09-2012
I had the same question, and was surprised not to have found any explanation on the web, so thanks to Corona688 for revealing it has a very simple answer.

As a result I have put together a quick script to automate the process. It is a bit rough and the images I have only contain one partition so I have not been able to test it with anything beyond the first partition. If there is a problem it will be with the larger numbers exceeding the shell's maximum integer size (which is also why I could not do the calculations in awk, as it only seems to support signed longints).

It works fine for me though with single partition USB stick images up to 16GB. I have called it mount-img and the usage is:

Code:
mount-img <image-file> <partition-number> <mount-point>

Code:
#!/bin/sh

eval MI_IMAGE="$1"

if [ ! -e "$MI_IMAGE" ]; then
   echo "${0##*/}: No such file or directory"
   exit
elif [ -d "$MI_IMAGE" ]; then
   echo "$1: Is a directory"
   exit
elif [ ! "$2" ]; then
   echo "${0##*/}: partition number not specified"
   exit
elif [ ! "$2" -ge "1" 2>/dev/null ]; then
   echo "${0##*/}: invalid partition number"
   exit
fi

MI_PART=$(( $2 + 1 ))
MI_INFO=`/sbin/fdisk -ul "$MI_IMAGE" 2>/dev/null | grep -E "Sector size \(logical/physical\):|^$MI_IMAGE"`
MI_SECTOR="${MI_INFO#*: }"
MI_SECTOR="${MI_SECTOR%% bytes*}"

if [ "$MI_PART" -gt "`echo "$MI_INFO" | wc -l`" ]; then
   echo "${0##*/}: partition number too high"
   exit
elif [ ! "$3" ]; then
   echo "${0##*/}: mount point not specified"
   exit
elif [ ! -e "$3" ]; then
   echo "${0##*/}: mount point $3 does not exist"
   exit
elif [ ! -d "$3" ]; then
   echo "${0##*/}: mount point $3 is not a directory"
   exit
fi

MI_OPTS=`echo "$MI_INFO" | awk -v l="$MI_PART" 'NR==l {printf "%s/%s",$(NF-4),$(NF-3)}'`
MI_OFFSET=$(( ${MI_OPTS%/*} * $MI_SECTOR  ))
MI_LIMIT=$(( (${MI_OPTS#*/} - ${MI_OPTS%/*}) * $MI_SECTOR  ))
mount -o loop,offset=$MI_OFFSET,sizelimit=$MI_LIMIT "$1" "$3"

This User Gave Thanks to mij For This Post:
 

10 More Discussions You Might Find Interesting

1. Linux

Non exclusive sound device access!!

Hi, I was wondering if any of you guys know of way to make applications that use sound device on linux to access it in a "non-exclusive manner", the aim is to be able to use more than one application that requires the sound device. Thanks (0 Replies)
Discussion started by: andryk
0 Replies

2. Linux

attempt to access beyond end of device

Hi, we have running 8 box sles 9 cluster and on an nfs filesystem we have the problem which is grepped from /var/log/messages. Jun 8 13:40:46 qnclpx02 kernel: attempt to access beyond end of device Jun 8 13:40:46 qnclpx02 kernel: sdat: rw=0, want=8894615912, limit=314572800 Is there... (1 Reply)
Discussion started by: ortsvorsteher
1 Replies

3. UNIX for Dummies Questions & Answers

controll access to a device

Hello everyone, I write a program (Linux & Solaris) that will run as non-root user, but the program must have rw access to a device /dev/ipmi (on linux) or /dev/bmc (on solaris). What is the standard way of granting such access? Linux: chmod on /dev/ipmi ? suid root my program? Solaris:... (1 Reply)
Discussion started by: Pavel.Bures
1 Replies

4. Homework & Coursework Questions

The pseudo-device provides a “backdoor” for gaining root access for a particular user.

Problem statement. In this part of the assignment, delegates will create a pseudo-device and write a device driver for it. The pseudo-device provides a “backdoor” for gaining root access for a particular user. Instead of compiling the device driver into the kernel, delegate will create a module.... (1 Reply)
Discussion started by: nyjilgeorge1
1 Replies

5. OS X (Apple)

Not mounted, no-driver USB device in terminal (how to access?)

hi, i am on a quest to access and even mount if possible a drive on os x. there is no driver for the device, but it lists fine in the system profiler. can i access its location from the terminal? how? here is what i get on the system profiler: Speed: Up to 480 Mb/sec Manufacturer: SAMSUNG ... (3 Replies)
Discussion started by: sontarieh
3 Replies

6. UNIX for Advanced & Expert Users

How the user process can access the character device loaded by my module

I am trying to load into the kernel a system-call dynamically (without restarting the kernel and compailing it) in an attempt to (once in kernel mode) write to user process's memory. (I know there is a way to do this with the ptrace interface but it is not an option.) I know the only way to... (1 Reply)
Discussion started by: hopelessProgram
1 Replies

7. Cybersecurity

Can't access my device DJI Phantom 3 which uses UNIX. Need Help please!

Equipment: DJI Phantom 3 I have the root and passwords access, but I cannot find out how to access the equipment. There is a USB port going to a miniUSB that connects to the equipment, but on Windows is detecting the connection as being a Serial Port (COM3). I need some help in order to gain... (5 Replies)
Discussion started by: nobr3ga
5 Replies

8. Ubuntu

Cannot access or boot encrypted drive (gave up waiting for root device...)

I cannot access or boot from my C drive. I'm running Zorin 9 and the drive is a Samsung SSD. The disk was encrypted on install, and that has not given me any problems before. When I start the system it gets to the memory test page, and does not then load the password prompt, which it used to.... (1 Reply)
Discussion started by: David4321
1 Replies

9. UNIX for Dummies Questions & Answers

Exclusive access for few IPs to NTP device

How to provide a client exclusive access to the NTP device or NTP server. Example: 1. Configured md5 authentication for a subnet added below restriction line to the subnet as below in ntp.conf file. Also configured the keys and md5 authentication working . restrict 192.168.1.0 mask... (1 Reply)
Discussion started by: iqtan
1 Replies

10. HP-UX

Failed to open tape device /dev/rmt/0mn:Device busy (errno = 16)

Hi, Unable to make tape backup, please help. /opt/ignite/bin/make_tape_recovery -a /dev/rmt/?mn -I -v -m tar -x inc_entire=vg00 * Creating local directories for configuration files and archive. ======= 04/25/16 16:28:08 IST Started /opt/ignite/bin/make_tape_recovery. (Mon... (4 Replies)
Discussion started by: anuragr
4 Replies
echo(1B)					     SunOS/BSD Compatibility Package Commands						  echo(1B)

NAME
echo - echo arguments to standard output SYNOPSIS
/usr/ucb/echo [-n] [argument] DESCRIPTION
echo writes its arguments, separated by BLANKs and terminated by a NEWLINE, to the standard output. echo is useful for producing diagnostics in command files and for sending known data into a pipe, and for displaying the contents of envi- ronment variables. For example, you can use echo to determine how many subdirectories below the root directory (/) is your current directory, as follows: o echo your current-working-directory's full pathname o pipe the output through tr to translate the path's embedded slash-characters into space-characters o pipe that output through wc -w for a count of the names in your path. example% /usr/bin/echo "echo $PWD | tr '/' ' ' | wc -w" See tr(1) and wc(1) for their functionality. The shells csh(1), ksh(1), and sh(1), each have an echo built-in command, which, by default, will have precedence, and will be invoked if the user calls echo without a full pathname. /usr/ucb/echo and csh's echo() have an -n option, but do not understand back-slashed escape characters. sh's echo(), ksh's echo(), and /usr/bin/echo, on the other hand, understand the black-slashed escape characters, and ksh's echo() also understands a as the audible bell character; however, these commands do not have an -n option. OPTIONS
-n Do not add the NEWLINE to the output. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWscpu | +-----------------------------+-----------------------------+ SEE ALSO
csh(1), echo(1), ksh(1), sh(1), tr(1), wc(1), attributes(5) NOTES
The -n option is a transition aid for BSD applications, and may not be supported in future releases. SunOS 5.11 3 Aug 1994 echo(1B)
All times are GMT -4. The time now is 01:20 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy