Rationing, shortages and profiteering hit garages yesterday ahead of the planned strike at the Grangemouth oil refinery as motoring organisations and government ministers pleaded with drivers not to panic-buy petrol.

Many stations in Scotland limited customers to £10 or £20-worth of fuel, a few ran out of diesel, and a small number raised prices by up to 10p a litre.

Farmers feared they would face severe difficulties if supplies dried up. "The message that there's enough fuel to go around is not quite squaring with what people are seeing on the ground at the moment," warned James Withers, chief executive of NFU Scotland.

Grangemouth, north-west of Edinburgh, refines 9m litres of petrol a day, around 10% of the UK's daily usage.

The two-day strike will also force 70 oil and gas fields in the North Sea to halt production. Around 700,000 barrels of oil, more than a third of the UK's output, normally flows into the nearby Kinneil plant which relies on steam and electricity from the Grangemouth site and which will have to be closed tomorrow.

Shutting down oil production will also halt the flow of gas from the fields, cutting UK output by about 30%. National Grid said it did not expect the closure to have an impact on gas supplies because demand had dropped from winter levels.

Scotland's first minister, Alex Salmond, said: "We need everyone's cooperation in not repeat-buying, to cut out nonessential trips, and to use public transport."

Malcolm Wicks, the UK energy minister, said: "I cannot guarantee that every garage forecourt will have petrol at [any] precise moment. People will have to be sensible and rational."

The AA said it was not aware of any problems in England or Wales. "There are [only] shortages in Scotland," a spokesman said. "Earlier in the week, when garages started rationing, there was lots of abuse. Sense is now returning to forecourts."

North Sea production is expected to be restored within five to six days of the end of the strike. Grangemouth is expected to be out of action for much longer. "We are saying three weeks, that's our best guess, but it could be more," said a spokesman for the refinery owners, Ineos.

Yesterday there was little sign of agreement between the company and the union, Unite. The plant's 1,200-strong workforce will begin the two-day strike tomorrow over changes the company wants to make to its final salary pension scheme.