OK, after unsuccessfully trying all methods mentioned here, I finally got it working. Basically, the missing step was to write a proper boot sector to the USB stick, which can be done from Linux with ms-sys
or lilo -M
. This works with the Windows 7 retail version.
Here is the complete rundown again:
Install ms-sys - if it is not in your repositories, get it here. Or alternatively, make sure lilo is installed (but do not run the liloconfig step on your local box if e.g. Grub is installed there!)
Check what device your USB media is assigned - here we will assume it is /dev/sdb
. Delete all partitions, create a new one taking up all the space, set type to NTFS (7), and remember to set it bootable:
# cfdisk /dev/sdb
or fdisk /dev/sdb
(partition type 7, and bootable flag)
Create an NTFS filesystem:
# mkfs.ntfs -f /dev/sdb1
Write Windows 7 MBR on the USB stick (also works for windows 8), multiple options here:
# ms-sys -7 /dev/sdb
- or (e.g. on newer Ubuntu installs)
sudo lilo -M /dev/sdb mbr
(info)
- or (if syslinux is installed), you can run
sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb
Mount ISO and USB media:
# mount -o loop win7.iso /mnt/iso
# mount /dev/sdb1 /mnt/usb
Copy over all files:
# cp -r /mnt/iso/* /mnt/usb/
...or use the standard GUI file-browser of your system
Call sync
to make sure all files are written.
Open gparted, select the USB drive, right-click on the file system, then click on "Manage Flags". Check the boot checkbox, then close.
...and you're done.
After all that, you probably want to back up your USB media for further installations and get rid of the ISO file... Just use dd:
# dd if=/dev/sdb of=win7.img
Note, this copies the whole device! — which is usually (much) bigger than the files copied to it. So instead I propose
# dd count=[(size of the ISO file in MB plus some extra MB for boot block) divided by default dd blocksize] if=/dev/sdb of=win7.img
Thus for example with 8 M extra bytes:
# dd count=$(((`stat -c '%s' win7.iso` + 8*1024*1024) / 512)) if=/dev/sdb of=win7.img status=progress
As always, double check the device names very carefully when working with dd
.
The method creating a bootable USB presented above works also with Win10 installer iso. I tried it running Ubuntu 16.04 copying Win10_1703_SingleLang_English_x64.iso (size 4,241,291,264 bytes) onto an 8 GB USB-stick — in non-UEFI [non-secure] boot only. After execution dd reports:
8300156+0 records in
8300156+0 records out
4249679872 bytes (4.2 GB, 4.0 GiB) copied, 412.807 s, 10.3 MB/s
Reverse if/of next time you want to put the Windows 7 installer onto USB.
You can add a udev rule for your specific device -- to do this, create a file called /etc/udev/010custom.rules (or something similar; just make sure numerically it is the smallest in the directory). The files contents will be:
BUS="usb", SYSFS{idVendor}="**IDVENDOR**", SYSFS{product}="**PRODUCT**", NAME="usb/%k", SYMLINK="DEVICE"
RUN+="/path/to/your/script"
Replace the bolded keywords with the values for your device from lsusb
:
Bus 005 Device 002: ID 0b05:b700 ASUSTek Computer, Inc. Broadcom Bluetooth 2.1
The first bold field above is IDVENDOR, and the second bold field is PRODUCT.
As for DEVICE, you can define this yourself; it will create a /dev/ node which is a symlink to any device that fits the criteria above (so, if you put foobar as the SYMLINK, udev will create a /dev/foobar which is a symlink to your USB device).
Note: I haven't tried this myself as I don't have any removable USB devices, but it should work. If you have any trouble check the udev documentation for rules.
Best Answer
This is possible in numerous ways.
webcamd
is a daemon that can save an image from the camera continuously. Just make any kind of webpage that repeatedly loads the image and you'll get a "stream".vcl
can be set up to provide a real video stream encoded in the formats you'd like - and then again embedded on the website - or just as a normal video stream that you read withvcl
somewhere else. It also supports multicast.ZoneMinder is a set of services that not only will provide you with a stream - but can detect movement and create alarms as well.
And many more (if someone consider this list incomplete, I encourage them to add to it).