Some Windows Apps Make GRUB 2 Unbootable
KwahAG writes "Colin Watson, one of the Ubuntu developers, published in his blog information about Windows applications making GRUB 2 unbootable. Users of dual-boot Windows/Linux installations may face the problem, which boils down to particular Windows applications (Colin does not name them, but users point at least to HP ProtectTools, PC Angel, Adobe Flexnet) blindly overwriting hard disk content between the MBR and the first partition destroying information already stored there, in this particular case — the 'core image' of GRUB 2 (GRand Unified Bootloader) making the system unbootable."
Don't run those apps as administrator. Administrator privileges are needed for raw disk access.
... and that's the reason why BIOS 'virus protection' blocks access to that portion of the hard drive. Too bad that DRM breaks everything once again and too bad the mainstream of users isn't affected by it.
Custom electronics and digital signage for your business: www.evcircuits.com
Protecting your laptop from open source commies. And maybe viruses.
Anyone smart enough to run GRUB wouldn't usually be running HP ProtectTools or PC Angel. Adobe Flexnet DRM is another issue entirely.
WTF is this "embedding area?" It sound like GRUB is misusing the disk geometry to find unused space and then getting upset that other programs do that too.
Googling for "embedding area" find that it's a term that GRUB 2 made up and that it's not really a part of anything. In fact, apparently this space doesn't even exist under EFI systems, and that this "embedding area" is an artifact from DOS.
So, basically, GRUB is misusing the disk to store information in a place it has no right to be touching, and then getting upset that other people make the same mistake. Genius.
Nothing to see here...Just proprietary companies fucking up some computers. What do they care? They've got a large market to sere that doesn't run our far-superior POSIX compatible kernels.
I honestly hope there is a way to sue them, though I don't think there is.
Have you heard about SoylentNews?
I run a windows 7 unbuntu 10.04 dual boot, Ubuntu keeps deleting windows 7 from my grub.cfg everytime grub updates, now windows makes grub unbootable altogether. Wicked. This would explain why my laptop got stuck in an endless reboot loop yesterday... Sigh...
Grrr, I hate how he starts by calling it a bug.
A bug is a program doing something that the software did not intend. This is hardly that.
Is it criminal trespass of your computer, yes. At least if the program does not disclose that it will be using this shared area.
While MBR has some function, the rest of sectors between MBR and the first partition was always a great area.
Many MBR viruses put their stuff there. Many stupid programs use it to store DRM data, so they can check whether they were copied to other computer
If GRUB is using this region too, it is equally stupid. There is no protocol for allocating this area and there is no guarantee that this data is not going to be overwritten by any other stupid program.
So nothing to see here, move aling, it is just Core Wars between stupid programs.
GRUB developers should have known better.
So once again DRM is fucking with peoples' abilities to use their computers. Except this particular bit of DRM doesn't just screw with Windows; it could potentially screw with every OS on your drive (or screw with your ability to access them, at any rate).
Yeah, it's not conventional DRM, but it's a form of DRM in that it restricts the user in some arbitrary way (and, I ought to add, breaks something else in the process... that too should be part of the definition of DRM).
That Anonymous Coward guy is pretty annoying. Can we have the government censor him or something?
Got to say this isn't surprising at all. Windows has never favored the dual boot setup. In the mind of Microsoft, there product should be the only one to touch the drive and thats it. Personally I run 2 dual boot setups. 1 on my notebook and 1 on my desktop. The amount of times that Windows has chosen to just over write grub and leave me with no way to get into Linux is amazing. What Microsoft should do to show there a team player is put code into the install to detect a grub install and then append the correct entry into the grub file to setup the dual boot.
I know this will very likely never happen but it would be a good step to be taken by Microsoft.
Grub2 has a lot of nice features but it seems to be adding a lot of complexity into the equation , more than is required for some systems.
Thankfully they thought of renaming it rather than adding all that stuff to GRUB legacy , otherwise i would've started one of those Grub vs Lilo rants only renamed into Grub vs. Grub right here and now.
blindly overwriting hard disk content between the MBR and the first partition destroying information already stored there
There's no allocation scheme nor some kind of magic number to identify the content in that zone, so there is no 'smart' way to write in that zone. You could check for zeroes, which is fine fine for a new disk, then ask the user if you find that the area has been previously written, but the user usually won't know and will only be confused.
The 'smart' thing to do is not only to not write in that area (as reported, GRUB stage 1.5 can be erased), but also to not write in the MBR as too many OSes will overwrite it (and therefore GRUB stage 1) on (re)installation.
I'm usually staying with the conventional "4 primary partitions that can be active" MBR, GRUB stage 1 in some Linux partition (usually a small /boot partition at the beginning of the disk to avoid most of the problems with old/buggy BIOSes), then directly stage2 from the partition instead of stage 1.5. However, the loading of stage 2 without stage 1.5 has been deprecated in GRUB2. IIRC it's because the block list needed was bigger than with the smaller GRUB1, and might not fit in the boot sector anymore.
Alas, that disposition can break on some old/buggy BIOSes but is much more resilient to software abuse (usually writing a standard boot sector and setting the active partition to the one where you installed GRUB fixes any such problems).
(I'm talking about GRUB stages from memory, feel free to correct me if I did some mistakes)
I have discovered a truly marvelous proof of killer sig, which this margin is too narrow to contain.
If these apps are writing outside the file system, and doing so in an undocumented fashion, is this not; in some sense, a definition of malicious activity?
And yes, LILO is still supported and under development. LILO 23
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
Seriously. It's not that hard. Get a boot CD, drop to a command prompt, install GRUB. If that's inconvenient, consider virtualizing one OS or the other. Say, virtualize Linux in Windows using free VMware Server.
Isn't it about time we had the Linux, Windows, and OS X guys sit down and agree on a standard for booting into multiple Operating Systems that wasn't invented in the early 1990s? I mean, just create a VERY simply little standard everyone can agree on that simply allows boot loaders to be called.
I know, I know, insanely wishful thinking. Unfortunately there is no benefit for either Apple or Microsoft to ever agree to even the concept of multi-boot since it is against their respective business models. Maybe we should have a third party create the standard and then pressure Microsoft into signing up for it?
They are great to have, much more convenient. But not strictly required due to the way that hardware *is*. I run a straight linux box. And the last I checked, you could "dd" the kernel image directly to the first bootable device, usually /dev/hda or /dev/sda, and it would boot. You do it as an entire block, and then "dd" the entire root FS onto the next disk block. So that the kernel can find it. If it doesn't fly then you get a panic message about "Root FS not found" along with a complete halt. It will sit there and wait for a kernel cmdline. Alternatively, you can set a word in ramdisk via "rdev" and tell the kernel where to find it. It's in the "howto's".
C|N>K
The big headache is FLEXnet, Adobe's "license manager". It's a specialized rootkit that gives the remote licensing system access to the machine at a low level. Which is why it tends to break things a Windows application shouldn't be able to break. On Windows, it runs a background service and contacts a remote server frequently, sending undocumented information to the remote server and accepting update commands to change software already on the computer.
FLEXnet is the successor to FlexLM, a licensing system from the 1980s. It started as a UNIX product. It's been owned at various times by Highland, Globetrotter, Macrovision, and Thoma Cressey Bravo. It was unreliable in the 1990s, and the passage of time does not seem to have improved things.
In general, it's best to avoid buying Adobe products which install the FLEXnet license server.
Developers, Developers, Developers, Developers.
The whole point behind VMs is to make the host as reliable and stable as possible and put the flakier OS and software in a VM so when it crashes and burns, all one has to do is start the VM, not try to rebuild file structures and apps from scratch. Your post suggests you're not quite clear on the concept.
Unless you honestly believe that "Son of Vista" is more reliable and stable than Linux. In which case, I recommend you get help from a competent mental health professional.
Tech Public Policy stuff
They are trying to outsmart the os and other programs by using non-standard areas for some of their code without bothering to check if something else is already using it.
Ironically I saw a lot of this during the switchover to win95.
The stupidly assume that if their test machine isn't using that chunk of drive, nothing else does either, at any time, ever.
You'd be shocked at how many people got their MBRs blown out because of that kind of stupidity.
Well, it's been about 15 years, so there's a whole new crop of arrogant lazy s.o.b.s out there that have to learn that the computer is a shared environment.
We've been down this road before. In 2003, Intuit's Turbo Tax (for tax year 2002) pulled the same stunt, indiscriminately overwriting sectors at the beginning of the disk (outside any partition) and trashing people's bootloaders.
All in the futile pursuit of DRM. That's reason enough for me to use Tax Cut, instead, every year since.
"Given the pace of technology, I propose we leave math to the machines and go play outside." -- Calvin
That sort of thing is SOP for HP and Adobe lately, and certain video game manufacturers.
"If any question why we died, Tell them because our fathers lied."
Your software has NO business writing to the MBR. EVER... The MBR and the installation of device drivers should be reserved for *legitimate* use, such as providing support for hardware, or multibooting another OS. This is yet another reason not to trust proprietary software. The bottom line is this: you do not know how the end-user has configured his machine. Therefore you should not fsck with unnecessary portions of the system that are not intended to be routinely modified.
It brings up some recollection of one of those accounting programs from a few years back, Quicken? TurboTax?
For justice, we must go to Don Corleone
I'm feeling very tempted to go on the forum of some expensive proprietary software that uses Adobe FlexNet DRM and go 'hey guys, listen up: there's this neat operating system "Debian/Ubuntu Linux", and after installing it, I could re-install after the trial period expired and keep on using it.'
I have a system at home that's dual boot ... I like to game occasionally. But don't make me choose. My professional career depends on Linux and I need it for productivity.
I realise that I could easily do a search to work out what is going wrong and fix it, but, really I couldn't be fucked spending time on it. I (like many others) could spend that time doing other things.
This is in Microsoft's best interest to make sure that applications that run on their OS fix this.
.
This has been a problem with older versions of Dreamweaver. As part of the copy protection, it would write data to the space between the MBR and the first partition. Steve Gibson talked about it on Security Now episode 132 (circa 2008) when discussing how this issue fubar'd TrueCrypt (unless you had a recovery CD) just after it came out with its whole-disk encryption ability.
Flexlm is about as evil a piece of software I've ever seen. It only exists to punish the innocent that have actually paid for the licence and to fleece the software vendors that have paid for this bit of rubbish that is easier to circumvent than it is to use. Due to compatibility bugs I'm still running a fucking RedHat7.2 machine just to feed the other Centos5 machines a licence - so one machine doing nothing but burning electricity and handing out a licence. Running it in a VM would of course void the licence, as would one of the many simple workarounds to disable flexlm.
A later MS Windows version I had the misfortune to use had a Y2K bug in 2008! With an update our perpetual licences were marked as expired in 2000. It took two weeks to get a fix out of Macrovision.
Why limit your imagination at the boot loader? It is my opinion that these Windows applications should flash your BIOS instead of screwing with master boot record for the purpose of copy protection. That way, if they mess up, the computer won't even power up. ;-)
I once had a signature.
I have two takes on this. On one hand, why the hell are we relying in data written in an unallocated portion of the disk ? (yes I know how booting works). On the other, what makes these idiotic DRM freaks believe they have any right to trample all over that portion of the disk ?
The way I see it, both parties are doing it wrong. I'm leaning in favor of Grub, only because it actually has a noble purpose unlike the DRM, but that doesn't exonerate it of wrongdoing. If Grub is going to evolve into something more than just a simple bootloader, then maybe it's time it got a partition for itself. I'm perfectly cool with it having a mini recovery system vibe going on, but when you blindly sneak things into the filesystem equivalent of "No Man's Land", sooner or later something's going to break.
Or maybe this is a sign that we need to start pushing more towards a universal BIOS-based bootloader, and frankly I'm amazed we even got this far without one. I can think of very few non-PC platforms that don't have an on-chip bootloader.
-Billco, Fnarg.com
Don't run those apps as administrator. Administrator privileges are needed for raw disk access.
College-Pages.com - Online Colleges, Degrees, and Programs
So you're saying that if we write to a piece of storage (memory, hard disk, whatever) without allocating it through the established mechanisms, that some other program could mistakenly overwrite our data? That's so unfair! (Bonus points for somehow blaming Microsoft for this, even though their bootblock/partition table spec has been documented in various ways for almost 30 years).
Please look at all those Windows defenders.
They make excuses for, of all thins:
1. DRM.
2. Piece of software that uses space between first sector and the end of the first cylinder for no other purpose than obfuscation.
and attack
1. Bootloader.
2. Piece of software that follows the convention used by all bootloaders everywhere since people started using multiple filesystems on a x86-based computer.
What kind of person, other than Microsoft astroturfer or complete moron would do such a thing?
Contrary to the popular belief, there indeed is no God.
On my HP laptop, whenever I enter the restore partition software screen by hitting F11 on the BIOS screen, it resets the boot partition to the Windows loader.
No need to actually tell the restoration software to do anything, you can just enter it and exit straight away; it simply removes any bootloader installed automatically with no confirmation beforehand.
I actually found this "feature" useful when I wanted to remove a Linux installation gone bad, as it saved me the trouble of restoring the Windows bootloader.
Nevertheless, this is outrageous.
LILO put the blocks addresses of the boot file into the boot loader. Of course, this has two major problems:
1 - Every time the boot file is updated, the boot loader needed to be updated. A simple command sufficed. But this problem absolutely PAILED in the face of the second issue...
2 - The boot file was limited in size, Only a fixed number of addresses could be coded into the boot file. But, this problem was partially "fixed" by the third issue:
3 - (I did two MAJOR problems, this is a minor issue). The boot loader operates in REAL mode on the x86. As a result, the code must load under 640K. But, since the boot file is of limited size ANYWAY, this one really didn't matter so much.
Of course, since the "MBR loader" is under 1 sector (the forced jump, checksum, and primary partition areas do take space, and these are BIOS-checked), there really isn't even room for a device driver. This code is pretty much forced to work in real-mode, but that's actually a good thing -- it can make use of BIOS interrupts for the disc handling. But...
4 - The boot is limited to a BIOS reachable (disc geometry) region. That is why some OSs MUST be loaded into the first 528MB (or so, it's really been a while since I've looked at this crap, sue me if the actual is different) region.
Now, different OSs attempt to get around these limitations in different ways. A boot loader can chain to a partition-specific boot loader, which serves to "push" the issues. Some OSs (cough, DOS, cough) simply force the OS image to be contiguous and the first thing in a partition. But, users don't (generally) WANT to be bothered with these issues. Where the OS is physically resident, HOW it loads, and how to keep its size within constraints. Linux can be built with built-in drivers, minimal drivers, etc. Using many different file systems...
So, GRUB attempts to address these issues. If you think you can do better (and, from your fairly arrogant tone, I think you do think so), have at it.
Just another "Cubible(sic) Joe" 2 17 3061
Personally, I don't like either the GNU Hurd Bootloader or the GPT partition table. The first is far too complex and the second is badly committee botched. Personally I can't remember the last time I actually needed multi-boot capability anyway, I always use virtual machines now. The last time I got close was testing drivers support for various versions of windows during the recent Vista fiasco, I used multiple disk drives for that.
My preferred Linux partitioning tool is LVM with lilo as the booter. Yes, that is LVM directly on the hard drive, no partition table no GPT; I don't need them and don't want them, they're just one more thing to cause bugs. Lilo is similar, though really Lilo still does too much, but at least unlike grub it doesn't get all pissy and chuck it's toys out of the pram when it can't find it's super secret hiding place.
Now that we know how *murderous* of rights they are
( there's a difference between hearing *about* DRM, and
finding out *its methods* )
we know we have to make *sacrificial* machines, that have nothing but
MS-Windows trojan
Adobe very-useful-trojans
whatever else needs to be in MS-Windows
( Dragon Naturally Speaking,
MS-Office for compatibility with other businesses,
etc )
and make certain our confidential/important information never touches those machines,
or, where it has to be on those machines to work with it,
make certain it is on it only for the work-duration.
( remember when MS implemented a system that would inform MS of every term you used to search your system with?
AND where that search "hit"?
How many laws about confidenciality were broken in places running MS-Windows, *criminally*, like
Hospitals ( search: "Joe Smith" aids; hit in file SSN:1234567-DOB:235423-ADDR:2GornWoodyCr )
Police ( search reported to MS: "Joe Smith" assault; hit in file HateCrimes-9000 )
Gov't ( all the SSN/tax info MS must have harvested through that OS-search-info )
IOW, they are PR, marketing-specific, videography-specific, photo/A/V specific, etc.
Now we know: now we understand how we already are existing in the "containment device" they set for us,
now we know how to limit our rights being eradicated utterly,
in the progression of this "arrangement".
Don't be the frog that remained in the heating pot!
IF you want to have rights, ANY rights, in future.
( remember what the Jews said when the Nazis kept incrementing the restrictive laws!
"Oh: it's Just One More Thing".
remember what the Jews said when the Nazis added the rule "Jews are not allowed to go anywhere anymore"...
"We're dead: it's Too Late!"
see "Anne Frank Remembered", for this, by someone who lived it )
Most Autodesk software seems to write to the MBR too (without disclosing it), but I have not experienced problems with Grub.
Wow, it's Rip Van Winckle!
"Probably not until xorg and the linux kernel get decent 3d support for ati or nvidia. (decent meaning at least as fast the closed source drivers for a large subset of openGL and fully implements all the 3d functions of the closed source drivers.)"
The nVidia linux driver IS their closed source driver, FWIT.
And AMD have released a full 3D open source GPL compliant driver for their recent cards.
Please, go back and read some news sites from 5 years ago, they'll fill you in on what you missed while asleep.
I dual booted Windows 7 and Ubuntu 9.04 (or 9.10, I don't remember), because I work with Adobe products often so I need Windows but I also like to dabble in Linux from time to time and running either OS in a virtual machine doesn't cut it.
Ubuntu/Windows fucked up my GRUB and/or ext3 partition and I couldn't really find a way to fix it either. I'm not a beginner Linux-user but I am no sysadmin either. I could never get into my Ubuntu system again.
Ubuntu/Windows also messed with the head of scandisk/chkdsk in Windows 7 that it "repaired" my files regularly at reboot which eventually lead to a huge loss of data. (Most of which I got back, fortunately.)
Since then I don't dare to run Linux/Windows dual boot anymore. It's a shame, because I like them both.
I had a problem where whenever I booted into Windows there was around a 50% chance it would corrupt my GRUB 2 bootloader.
I couldn't be bothered doing a format, so I ended up leaving my Ubuntu install CD in the drive so that whenever it happened I could boot Linux from the CD, repair GRUB 2 and reboot.
But it was frustrating as hell.
I've since formatted and luckily (don't jinx it!) whatever was corrupting it hasn't been reinstalled.
GRUB was badly designed.
GRUB should never have used the sectors between MBR and first partition.
The first 1024 bytes of an EXT2 partition are unused. GRUB should install itself on an EXT2 partition and use the first 1024 bytes to load.
Instead heres how it should operate:
MBR:
Load first 1024 bytes of EXT2 partition.
EXT2 Boot Record:
Within 1024 bytes it should be possible to find STAGE2 file in root directory and load it.
GRUB is poorly designed.... I hope they fix it!
Does it still work with modern OSs? What happens to the partition table? Someone mentioned that you can use Bios to enable virus protection on the MBR, essentially preventing anything to be written to this sector. If what you have can be done with that, then I don't see how Bios or UEFI would be able to modify this in windows or during an installation without the user's consent. A virus protection option in Bios should always stop any Windows or other OS when an installation plans to overwrite it (by overriding the user access control and whatever hack the software tries).
After several hair-pulling incidents where Windows ate my bootloader, I changed my dual-boot configuration to two separate bootable drives. So rather than using GRUB to decide which OS I'm booting into, the BIOS stops on boot-up to ask whether I want to boot off the Western Digital or the Seagate drive.
Have you been touched by his noodly appendage?
The same applies to 3ds max, if you don't have a license server.
Cedilla was baaaad!
The first 64 sectors of your harddisk are becoming a minefield. The partition table uses sector 0. The boot block uses sector 1. The local user version of the Flex Licence Manager uses sector 37. There are no standards for any other software using any other sectors.
I think so, because the wife's Flash 9 (css 2? -- whatever. Like I care) quit working on a KVM-qemu virtualized XP cylinder after an update, so she got it reactivated on her XP boot. That was an XP/Debian boot with XP on partition 1 handling the boot using the boot block trick chaining to Debian's grub 1 on partition 2. Decided to overwrite Debian with Ubuntu Lucid on partition 2 and that's a grub 2 boot of course. Did an fdisk and made partition 2 bootable before I called up the live disk to install Ubuntu. Now we have an Ubuntu/XP boot and her Flash 9 still seems happy so that might be the route to coexistence? Just boot partition 2 and let the damnable Windows programs do their worst on partition 1?
Let me quote from the FreeBSD manual: http://www.freebsd.org/doc/handbook/boot-blocks.html
"Conceptually the first and second stages are part of the same program, on the same area of the disk. Because of space constraints they have been split into two, but you would always install them together. They are copied from the combined file /boot/boot by the installer or bsdlabel (see below).
They are located outside file systems, in the first track of the boot slice, starting with the first sector. This is where boot0, or any other boot manager, expects to find a program to run which will continue the boot process. The number of sectors used is easily determined from the size of /boot/boot."
The FreeBSD booting mechanism on the x86 does the SAME thing as GRUB. It can also use LILO for booting.
Your comment is not warranted. A Windows dual-boot with such a "bad program" could possibly damage a FreeBSD boot loader as well.
Just another "Cubible(sic) Joe" 2 17 3061
Haha. Considering that my Windows 7 "upgrade from Vista" DVD (which actually installs the whole OS) won't even OFFER TO FORMAT AS NTFS (it only complains that the drive is not formatted NTFS and expects me to do the formatting separately first), I don't expect Microsoft to add that feature anytime soon.
I gave up on multi-boot installations a number of years, ago. I've had my last couple of PCs configured with swappable drive bays. When I want to boot a different OS, I just stick in a different drive.
When cryptography is outlawed, bayl bhgynjf jvyy unir cevinpl.
Because they were the only one's that wanted to bother farting around with finding 700 actual linux boxes to compromise. Running with Linux for 14 years.
Sounds like the simple solution is to make a partition that holds the disk region in question.
-I like my women like I like my tea: green-
Modify the code of Grub 2 to make Windows unbootable...
In the OpenFirmware BIOS (found on IBM System p hardware), there are read-only file-system drivers for FAT/ISO9660(CDROM)/ISO13356(DVD) and I'm sure most UEFI BIOS's have those drivers too. When you have that, you don't need to worry about code hidden in the MBR or preserving hardcoded offsets in a partition where certain files have to sit. The BIOS code just goes to the architected //bootinfo.txt file (CHRP format) and lists the boot options described therein, and it all just works with less complexity.
Alas, we're still playing with 1980's software architecture.
If there's a difference in terms of stability between a Kubuntu desktop, a Debian desktop (ex-user), and a Fedora Core desktop (ex-user), I certainly haven't noticed one, and given that my desktop and netbook both run Kubuntu as does my roommate's 900 MHz netbook, if there were a stability problem, I'd be trying to fix it. I shifted to Kubuntu over driver availability and other convenience issues.
Tech Public Policy stuff
In google-chrome linux, (v6 beta), minor loss in stability, but overall speed with lots of open tabs improves to the point that it's worth it.
/opt/google/chrome/google-chrome -enable-accelerated-compositing %U
Change the activation command in icon settings to
to try it yourself. Usual disclaimer... if your machine catches fire or demons materialize and eat you after you try this, it's on you.
Tech Public Policy stuff
If Windows and Windows programs insist on controlling the boot sector (and stuff that comes after it), you can still boot Linux.
At least starting with Vista, Windows has completely extensible boot loader of its own (the configuration data is called BCD).
The idea is that the Grub (or whatever) is installed on the same Linux *partition* where all the system files are installed (not on the MBR).
(At least Ubuntu installer has the option to install Grub on a partition instead of MBR out of the box.)
Windows boot loader is then used to load Grub from the beginning of that partition. No matter what
windows updates, programs etc. do this does not break.
Too bad that the default Linux installers don't support this option, since it
has been very hassle free for me at least. The initial setup could just as well be automatic.
Instructions for doing this manually here:
http://port25.technet.com/archive/2006/10/13/Using-Vista_2700_s-Boot-Manager-to-Boot-Linux-and-Dual-Booting-with-BitLocker-Protection-with-TPM-Support.aspx
You can't install most software without administrator perms. Not that that's a bad thing.
coreboot formerly known as LINUX BIOS. Problem solved. If it boots from the BIOS chip anything done to the Hard drive doesn't matter. Bwa ha ha ha ha!
Complete with strains of Microsoft's goings on over DR-DOS of old. Need some ref material on this angle? You could try - http://thismatter.com/articles/microsoft.htm
[Now, I'm off to lift my le... Um, visit... at another place.]